]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap, pop3, submission: Remove non-working environment variable handling
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 30 Jul 2025 10:22:41 +0000 (13:22 +0300)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Sat, 27 Sep 2025 17:46:34 +0000 (20:46 +0300)
Remove support for IP, LOCAL_IP and CLIENT_INPUT environments. These were
originally used by Dovecot v1.x for passing these fields from master
process. They are no longer useful, and they haven't been working anyway.

Also for imap remove support for IMAPLOGINTAG environment.

src/imap/main.c
src/pop3/main.c
src/submission/main.c

index 34a355521e861fdd6c7177d07462113257f39cd1..b4c9fc546ea4001e6a1a77bbbb84e11710827981 100644 (file)
@@ -6,7 +6,6 @@
 #include "ostream.h"
 #include "path-util.h"
 #include "str.h"
-#include "base64.h"
 #include "process-title.h"
 #include "randgen.h"
 #include "restrict-access.h"
@@ -312,8 +311,8 @@ static void main_stdio_run(const char *username)
 {
        struct client *client;
        struct mail_storage_service_input input;
-       struct imap_login_request request;
-       const char *value, *error, *input_base64;
+       struct imap_login_request request = { };
+       const char *error;
 
        i_zero(&input);
        input.service = "imap";
@@ -322,30 +321,11 @@ static void main_stdio_run(const char *username)
                input.username = getlogin();
        if (input.username == NULL)
                i_fatal("USER environment missing");
-       if ((value = getenv("IP")) != NULL)
-               (void)net_addr2ip(value, &input.remote_ip);
-       if ((value = getenv("LOCAL_IP")) != NULL)
-               (void)net_addr2ip(value, &input.local_ip);
 
        if (client_create_from_input(&input, NULL, STDIN_FILENO, STDOUT_FILENO,
                                     0, &client, &error) < 0)
                i_fatal("%s", error);
 
-       input_base64 = getenv("CLIENT_INPUT");
-       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_parse_imap_login_request(input_buf->data, input_buf->used,
-                                               &request);
-               if (request.input_size > 0) {
-                       client_add_istream_prefix(client, request.input,
-                                                 request.input_size);
-               }
-       }
-
        client_create_finish_io(client);
        client_send_login_reply(client->output,
                                str_c(client->capability_string),
index e9a63e2745f9845dea61d9f1166d57ae9c253804..94b9e8be5e4b31cb54d5e18c1148b73b11999f39 100644 (file)
@@ -7,7 +7,6 @@
 #include "istream-concat.h"
 #include "ostream.h"
 #include "path-util.h"
-#include "base64.h"
 #include "str.h"
 #include "process-title.h"
 #include "restrict-access.h"
@@ -260,8 +259,7 @@ static void main_stdio_run(const char *username)
 {
        struct client *client;
        struct mail_storage_service_input input;
-       buffer_t *input_buf;
-       const char *value, *error, *input_base64;
+       const char *error;
 
        i_zero(&input);
        input.service = "pop3";
@@ -270,19 +268,10 @@ static void main_stdio_run(const char *username)
                input.username = getlogin();
        if (input.username == NULL)
                i_fatal("USER environment missing");
-       if ((value = getenv("IP")) != NULL)
-               (void)net_addr2ip(value, &input.remote_ip);
-       if ((value = getenv("LOCAL_IP")) != NULL)
-               (void)net_addr2ip(value, &input.local_ip);
-
-       input_base64 = getenv("CLIENT_INPUT");
-       input_buf = input_base64 == NULL ? NULL :
-               t_base64_decode_str(input_base64);
 
        if (client_create_from_input(&input, STDIN_FILENO, STDOUT_FILENO,
                                     &client, &error) < 0)
                i_fatal("%s", error);
-       client_add_input(client, input_buf);
        client_create_finish(client);
 
        client_init_session(client);
index 9684d9d83d81b9276b6572266ad78c3aad9fcda4..059256aee46c281f79fb0134279151d587bd7f03 100644 (file)
@@ -6,7 +6,6 @@
 #include "istream.h"
 #include "ostream.h"
 #include "array.h"
-#include "base64.h"
 #include "hostpid.h"
 #include "path-util.h"
 #include "process-title.h"
@@ -249,8 +248,7 @@ client_create_from_input(const struct mail_storage_service_input *input,
 static void main_stdio_run(const char *username)
 {
        struct mail_storage_service_input input;
-       buffer_t *input_buf;
-       const char *value, *error, *input_base64;
+       const char *error;
 
        i_zero(&input);
        input.service = "submission";
@@ -259,17 +257,9 @@ static void main_stdio_run(const char *username)
                input.username = getlogin();
        if (input.username == NULL)
                i_fatal("USER environment missing");
-       if ((value = getenv("IP")) != NULL)
-               (void)net_addr2ip(value, &input.remote_ip);
-       if ((value = getenv("LOCAL_IP")) != NULL)
-               (void)net_addr2ip(value, &input.local_ip);
-
-       input_base64 = getenv("CLIENT_INPUT");
-       input_buf = input_base64 == NULL ? NULL :
-               t_base64_decode_str(input_base64);
 
        if (client_create_from_input(&input, 0, STDIN_FILENO, STDOUT_FILENO,
-                                    input_buf, &error) < 0)
+                                    NULL, &error) < 0)
                i_fatal("%s", error);
 }