From e017f7360e7caa23bf8d9e4486f35550239e2299 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Fri, 28 Nov 2025 00:42:07 +0100 Subject: [PATCH] login-common: login-proxy - Add login_proxy_input_halt() Halts input from proxy server early so that proxy_parse_input callback is not called again. --- src/login-common/login-proxy.c | 5 +++++ src/login-common/login-proxy.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/login-common/login-proxy.c b/src/login-common/login-proxy.c index 278142e8c7..8830c01a31 100644 --- a/src/login-common/login-proxy.c +++ b/src/login-common/login-proxy.c @@ -1354,6 +1354,11 @@ bool login_proxy_failed_because_invalid_cert(struct login_proxy *proxy) state == SSL_IOSTREAM_STATE_NAME_MISMATCH; } +void login_proxy_input_halt(struct login_proxy *proxy) +{ + io_remove(&proxy->server_io); +} + void login_proxy_multiplex_input_start(struct login_proxy *proxy) { struct istream *input = i_stream_create_multiplex(proxy->server_input, diff --git a/src/login-common/login-proxy.h b/src/login-common/login-proxy.h index cc554486e1..9434b6c65e 100644 --- a/src/login-common/login-proxy.h +++ b/src/login-common/login-proxy.h @@ -113,6 +113,8 @@ bool login_proxy_is_ourself(const struct client *client, const char *host, const struct ip_addr *hostip, in_port_t port, const char *destuser); +/* Halt input from proxy server early */ +void login_proxy_input_halt(struct login_proxy *proxy); /* Detach proxy from client. This is done after the authentication is successful and all that is left is the dummy proxying. */ void login_proxy_detach(struct login_proxy *proxy); -- 2.47.3