]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
login-common: Add login_proxy_multiplex_input_started()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 6 May 2026 15:19:13 +0000 (15:19 +0000)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 6 May 2026 15:19:13 +0000 (15:19 +0000)
Returns whether login_proxy_multiplex_input_start() has already been
called on the proxy. Lets callers detect a duplicate MULTIPLEX
notification from a buggy backend instead of triggering the
multiplex_orig_input==NULL assert.

src/login-common/login-proxy.c
src/login-common/login-proxy.h

index c27c5609c3ab1651adb137e9e85be23c917d0ef7..b1dd5063e4d72566d5c090118f73a329ab07a04b 100644 (file)
@@ -1368,6 +1368,11 @@ void login_proxy_input_halt(struct login_proxy *proxy)
        io_remove(&proxy->server_io);
 }
 
+bool login_proxy_multiplex_input_started(struct login_proxy *proxy)
+{
+       return proxy->multiplex_input != NULL;
+}
+
 void login_proxy_multiplex_input_start(struct login_proxy *proxy)
 {
        struct istream *input = i_stream_create_multiplex(proxy->server_input,
index 9434b6c65ec7fd8b31a53bdfc6bb4ffcc664970f..ab2a7472679924c9224aa0b4f775d788ab9ff34a 100644 (file)
@@ -125,6 +125,8 @@ int login_proxy_starttls(struct login_proxy *proxy);
 bool login_proxy_failed_because_invalid_cert(struct login_proxy *proxy);
 /* MULTIPLEX input was started. */
 void login_proxy_multiplex_input_start(struct login_proxy *proxy);
+/* Returns TRUE if login_proxy_multiplex_input_start() has been called. */
+bool login_proxy_multiplex_input_started(struct login_proxy *proxy);
 
 void login_proxy_replace_client_iostream_pre(struct login_proxy *proxy);
 void login_proxy_replace_client_iostream_post(struct login_proxy *proxy,