]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
login-common: Include hostname in log prefix
authorAki Tuomi <aki.tuomi@open-xchange.com>
Mon, 20 May 2024 07:50:34 +0000 (10:50 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 3 Jun 2024 20:26:45 +0000 (20:26 +0000)
src/login-common/login-proxy.c
src/login-common/login-proxy.h

index d20d4b44239d5496d161c4e55ef3c03d0263b439..2aa2811f7022a5a443b5ef8d1c8cec31cdccb1c5 100644 (file)
@@ -273,7 +273,7 @@ login_proxy_set_destination(struct login_proxy *proxy, const char *host,
                proxy->event,
                t_strdup_printf("proxy(%s,%s): ",
                                proxy->client->virtual_user,
-                               net_ipport2str(&proxy->ip, proxy->port)));
+                               login_proxy_get_hostport(proxy)));
 }
 
 static void proxy_reconnect_timeout(struct login_proxy *proxy)
@@ -282,6 +282,18 @@ static void proxy_reconnect_timeout(struct login_proxy *proxy)
        (void)login_proxy_connect(proxy);
 }
 
+const char *login_proxy_get_hostport(const struct login_proxy *proxy)
+{
+       struct ip_addr ip;
+       /* if we are connecting to ip address return that. */
+       if (net_addr2ip(proxy->host, &ip) == 0 &&
+           net_ip_compare(&proxy->ip, &ip))
+               return net_ipport2str(&proxy->ip, proxy->port);
+       /* it's hostname, or hostip is also used */
+       return t_strdup_printf("%s[%s]:%u", proxy->host,
+                              net_ip2addr(&proxy->ip), proxy->port);
+}
+
 static bool proxy_try_reconnect(struct login_proxy *proxy)
 {
        long long since_started_msecs, left_msecs;
index dbbef77e25ed519447e99a7b130f12f0f8c95b7a..c910b048407e89af33c5c5e8d459271dec1bca9a 100644 (file)
@@ -107,6 +107,9 @@ int login_proxy_starttls(struct login_proxy *proxy);
 struct istream *login_proxy_get_istream(struct login_proxy *proxy);
 struct ostream *login_proxy_get_ostream(struct login_proxy *proxy);
 
+/* Returns "ip:port" or "host[ip]:port" */
+const char *login_proxy_get_hostport(const struct login_proxy *proxy);
+
 void login_proxy_append_success_log_info(struct login_proxy *proxy,
                                         string_t *str);
 struct event *login_proxy_get_event(struct login_proxy *proxy);