]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: Copy haproxy provided fields before calling callback
authorAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 23 May 2025 18:07:33 +0000 (21:07 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Tue, 27 May 2025 07:46:35 +0000 (07:46 +0000)
Otherwise fields get lost, broken in 894610212596c35aade07a4d0af9d5e7fd6245c7

src/lib-master/master-service-haproxy.c

index d312b89e55ecd97c57e6b03166e5fc883e8ebe06..e5cf4254ea9de93da008848203d9cb1100eff994 100644 (file)
@@ -139,6 +139,14 @@ master_service_haproxy_conn_success(struct master_service_haproxy_conn *hpconn)
        struct master_service *service = hpconn->service;
        struct master_service_connection conn = hpconn->conn;
 
+       /* copy values */
+       conn.haproxy.cert_common_name = t_strdup(hpconn->conn.haproxy.cert_common_name);
+       if (hpconn->conn.haproxy.alpn_size > 0)
+               conn.haproxy.alpn = t_memdup(hpconn->conn.haproxy.alpn, hpconn->conn.haproxy.alpn_size);
+       else
+               conn.haproxy.alpn = NULL;
+       conn.haproxy.hostname = t_strdup(hpconn->conn.haproxy.hostname);
+
        master_service_haproxy_conn_free(hpconn);
        master_service_client_connection_callback(service, &conn);
 }