From: Siavash Tavakoli Date: Thu, 7 Oct 2021 21:52:47 +0000 (+0100) Subject: login-common: Start proxying after client fields are set X-Git-Tag: 2.3.18~190 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=574ad02a47b5d3de50c0a6e61c750d9e84b32e5f;p=thirdparty%2Fdovecot%2Fcore.git login-common: Start proxying after client fields are set Allows adding more event fields in login_proxy_new(). --- diff --git a/src/login-common/client-common-auth.c b/src/login-common/client-common-auth.c index eac9d48621..d776083c2b 100644 --- a/src/login-common/client-common-auth.c +++ b/src/login-common/client-common-auth.c @@ -508,13 +508,6 @@ static int proxy_start(struct client *client, "proxy(%s,%s:%u): ", client->virtual_user, net_ip2addr(&proxy_set.ip), proxy_set.port)); - if (login_proxy_new(client, event, &proxy_set, proxy_input, - client->v.proxy_failed) < 0) { - event_unref(&event); - return -1; - } - event_unref(&event); - client->proxy_mech = sasl_mech; client->proxy_user = i_strdup(reply->destuser); client->proxy_master_user = i_strdup(reply->master_user); @@ -523,6 +516,13 @@ static int proxy_start(struct client *client, client->proxy_nopipelining = reply->proxy_nopipelining; client->proxy_not_trusted = reply->proxy_not_trusted; + if (login_proxy_new(client, event, &proxy_set, proxy_input, + client->v.proxy_failed) < 0) { + event_unref(&event); + return -1; + } + event_unref(&event); + /* disable input until authentication is finished */ io_remove(&client->io); return 0;