From: Aki Tuomi Date: Mon, 20 May 2024 07:50:34 +0000 (+0300) Subject: login-common: Include hostname in log prefix X-Git-Tag: 2.4.0~1640 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dfa8f1abf00aaeec943a0a1433f8fecf2abdf80c;p=thirdparty%2Fdovecot%2Fcore.git login-common: Include hostname in log prefix --- diff --git a/src/login-common/login-proxy.c b/src/login-common/login-proxy.c index d20d4b4423..2aa2811f70 100644 --- a/src/login-common/login-proxy.c +++ b/src/login-common/login-proxy.c @@ -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; diff --git a/src/login-common/login-proxy.h b/src/login-common/login-proxy.h index dbbef77e25..c910b04840 100644 --- a/src/login-common/login-proxy.h +++ b/src/login-common/login-proxy.h @@ -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);