From: Timo Sirainen Date: Mon, 30 Nov 2015 19:36:51 +0000 (+0200) Subject: director: Don't treat empty hostname the same as having it. X-Git-Tag: 2.2.20.rc1~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=75aae86dfbad237872e214d595530ffa62a49fda;p=thirdparty%2Fdovecot%2Fcore.git director: Don't treat empty hostname the same as having it. This could have caused "host not given" errors if an empty "host=" was sent to login process, even though hostip was also sent. Fixed this in two places, although either one should have been enough. --- diff --git a/src/director/login-connection.c b/src/director/login-connection.c index 0777f399fa..18075a4cbf 100644 --- a/src/director/login-connection.c +++ b/src/director/login-connection.c @@ -153,7 +153,7 @@ login_host_callback(const struct ip_addr *ip, const char *hostname, secs = dir->set->director_user_expire / 2; str_printfa(str, "%s\tproxy_refresh=%u\t", request->line, secs); - if (hostname == NULL) + if (hostname == NULL || hostname[0] == '\0') str_printfa(str, "host=%s", net_ip2addr(ip)); else { str_printfa(str, "host=%s\thostip=%s", diff --git a/src/director/mail-host.c b/src/director/mail-host.c index bb85c2bdac..240b690796 100644 --- a/src/director/mail-host.c +++ b/src/director/mail-host.c @@ -211,7 +211,8 @@ mail_host_add_hostname(struct mail_host_list *list, const char *hostname, struct mail_host *host; host = mail_host_add_ip(list, ip, tag_name); - host->hostname = i_strdup(hostname); + if (hostname != NULL && hostname[0] != '\0') + host->hostname = i_strdup(hostname); return host; }