From: Stephan Bosch Date: Tue, 21 Feb 2023 00:33:15 +0000 (+0100) Subject: imap-urlauth: imap-urlauth-worker - Use connection API's client-to-server VERSION... X-Git-Tag: 2.4.0~2864 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8158888c4e5a5ad17f28290ec9bd2b5e8659a56;p=thirdparty%2Fdovecot%2Fcore.git imap-urlauth: imap-urlauth-worker - Use connection API's client-to-server VERSION handling. Requires reordering sending FDs with VERSION line. --- diff --git a/src/imap-urlauth/imap-urlauth-worker-client.c b/src/imap-urlauth/imap-urlauth-worker-client.c index c68ccedb3e..2edf897222 100644 --- a/src/imap-urlauth/imap-urlauth-worker-client.c +++ b/src/imap-urlauth/imap-urlauth-worker-client.c @@ -57,7 +57,6 @@ static const struct connection_settings client_worker_connection_set = { .unix_client_connect_msecs = 1000, .input_max_size = SIZE_MAX, .output_max_size = SIZE_MAX, - .dont_send_version = TRUE, .client = TRUE, }; @@ -152,18 +151,6 @@ imap_urlauth_worker_client_connected(struct connection *_conn, bool success) imap_urlauth_worker_client_disconnect(wclient); return; } - - /* send protocol version handshake */ - const char *handshake = t_strdup_printf( - "VERSION\timap-urlauth-worker\t%u\t%u\n", - IMAP_URLAUTH_WORKER_PROTOCOL_MAJOR_VERSION, - IMAP_URLAUTH_WORKER_PROTOCOL_MINOR_VERSION); - if (o_stream_send_str(wclient->conn.output, handshake) < 0) { - e_error(wclient->event, - "Error sending handshake to imap-urlauth worker: %m"); - imap_urlauth_worker_client_disconnect(wclient); - return; - } } int imap_urlauth_worker_client_connect( diff --git a/src/imap-urlauth/imap-urlauth-worker.c b/src/imap-urlauth/imap-urlauth-worker.c index a113ea0efd..dd469a5b21 100644 --- a/src/imap-urlauth/imap-urlauth-worker.c +++ b/src/imap-urlauth/imap-urlauth-worker.c @@ -765,14 +765,6 @@ static void client_ctrl_input(struct connection *_conn) timeout_reset(client->to_idle); - if (client->conn.fd_in == -1 || client->conn.fd_out == -1) { - if ((ret = client_ctrl_read_fds(client)) <= 0) { - if (ret < 0) - client_abort(client, "FD Transfer failed"); - return; - } - } - if (connection_input_read(&client->conn_ctrl) < 0) return; @@ -791,6 +783,14 @@ static void client_ctrl_input(struct connection *_conn) } client->version_received = TRUE; + } + + if (client->conn.fd_in == -1 || client->conn.fd_out == -1) { + if ((ret = client_ctrl_read_fds(client)) <= 0) { + if (ret < 0) + client_abort(client, "FD Transfer failed"); + return; + } if (o_stream_send_str(client->conn_ctrl.output, "OK\n") < 0) { client_destroy(client); return;