From 9f8653355a2170405eeb853e29ca1858ec28d16c Mon Sep 17 00:00:00 2001 From: Timo Sirainen <timo.sirainen@open-xchange.com> Date: Mon, 27 Jun 2022 15:32:14 +0300 Subject: [PATCH] managesieve-login: Use client_forward_decode_base64() for parsing XCLIENT FORWARD --- src/managesieve-login/client.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/src/managesieve-login/client.c b/src/managesieve-login/client.c index f79218822..412ea3117 100644 --- a/src/managesieve-login/client.c +++ b/src/managesieve-login/client.c @@ -158,25 +158,6 @@ cmd_logout(struct managesieve_client *client, return 1; } -static int -cmd_xclient_parse_forward(struct managesieve_client *client, const char *value) -{ - size_t value_len = strlen(value); - - if (client->common.forward_fields != NULL) - str_truncate(client->common.forward_fields, 0); - else { - client->common.forward_fields = str_new( - client->common.preproxy_pool, - MAX_BASE64_DECODED_SIZE(value_len)); - } - - if (base64_decode(value, value_len, client->common.forward_fields) < 0) - return -1; - - return 0; -} - static int cmd_xclient(struct managesieve_client *client, const struct managesieve_arg *args) @@ -194,7 +175,7 @@ cmd_xclient(struct managesieve_client *client, if (net_addr2ip(value, &client->common.ip) < 0) args_ok = FALSE; } else if (str_begins_icase(arg, "FORWARD=", &value)) { - if (cmd_xclient_parse_forward(client, value) < 0) + if (!client_forward_decode_base64(&client->common, value)) args_ok = FALSE; } else if (str_begins_icase(arg, "PORT=", &value)) { if (net_str2port(value, &client->common.remote_port) < 0) -- GitLab