From 100bfdae4ab01558360bc3d4871d1e4238d3e548 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 30 Jul 2025 13:22:41 +0300 Subject: [PATCH] imap, pop3, submission: Remove non-working environment variable handling 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 | 24 ++---------------------- src/pop3/main.c | 13 +------------ src/submission/main.c | 14 ++------------ 3 files changed, 5 insertions(+), 46 deletions(-) diff --git a/src/imap/main.c b/src/imap/main.c index 34a355521e..b4c9fc546e 100644 --- a/src/imap/main.c +++ b/src/imap/main.c @@ -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), diff --git a/src/pop3/main.c b/src/pop3/main.c index e9a63e2745..94b9e8be5e 100644 --- a/src/pop3/main.c +++ b/src/pop3/main.c @@ -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); diff --git a/src/submission/main.c b/src/submission/main.c index 9684d9d83d..059256aee4 100644 --- a/src/submission/main.c +++ b/src/submission/main.c @@ -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); } -- 2.47.3