]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Don't treat empty hostname the same as having it.
authorTimo Sirainen <tss@iki.fi>
Mon, 30 Nov 2015 19:36:51 +0000 (21:36 +0200)
committerTimo Sirainen <tss@iki.fi>
Mon, 30 Nov 2015 19:36:51 +0000 (21:36 +0200)
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.

src/director/login-connection.c
src/director/mail-host.c

index 0777f399faaf1365e9c25ce012769dfdcc61ae14..18075a4cbf4568dfa353a4af16d3e427863ab0a1 100644 (file)
@@ -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",
index bb85c2bdac82d6c9e4d91feaf798dc308aceb4dd..240b690796e05a3bce7bf6516384b18ada7d0f80 100644 (file)
@@ -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;
 }