]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: Move IMAPLOGINTAG environment handling
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Fri, 8 Oct 2021 12:57:50 +0000 (15:57 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Tue, 12 Oct 2021 06:17:00 +0000 (06:17 +0000)
It can only happen with stdio clients when they don't have CLIENT_INPUT,
so it makes more sense to exist in the calling function.

src/imap/main.c

index a95f41b9514db06f54d170beead080b196ce6544..3595deb2e94e817809d68d0105cc7ffc85c46a4d 100644 (file)
@@ -193,10 +193,6 @@ client_add_input(struct client *client, const unsigned char *client_input,
                        client_add_istream_prefix(client, request_r->input,
                                                  request_r->input_size);
                }
-       } else {
-               /* IMAPLOGINTAG environment is compatible with mailfront */
-               i_zero(request_r);
-               request_r->tag = getenv("IMAPLOGINTAG");
        }
 }
 
@@ -344,9 +340,11 @@ static void main_stdio_run(const char *username)
                i_fatal("%s", error);
 
        input_base64 = getenv("CLIENT_INPUT");
-       if (input_base64 == NULL)
-               client_add_input(client, NULL, 0, &request);
-       else {
+       if (input_base64 == NULL) {
+               /* IMAPLOGINTAG environment is compatible with mailfront */
+               i_zero(&request);
+               request.tag = getenv("IMAPLOGINTAG");
+       } else {
                const buffer_t *input_buf = t_base64_decode_str(input_base64);
                client_add_input(client, input_buf->data, input_buf->used,
                                 &request);