From c9fc2c6ad39d61ba830611123e03d690536688b8 Mon Sep 17 00:00:00 2001 From: Pavel Rochnyack Date: Thu, 26 Oct 2017 12:17:49 +0700 Subject: [PATCH] Fix hostname_g initialization from gethostname() Closes: #2506 --- src/daemon/collectd.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/daemon/collectd.c b/src/daemon/collectd.c index dd9b12f8..9ec09347 100644 --- a/src/daemon/collectd.c +++ b/src/daemon/collectd.c @@ -76,10 +76,11 @@ static void sig_usr1_handler(int __attribute__((unused)) signal) { } static int init_hostname(void) { - const char *str; - - struct addrinfo *ai_list; - int status; + const char *str = global_option_get("Hostname"); + if ((str != NULL) && (str[0] != 0)) { + hostname_set(str); + return 0; + } long hostname_len = sysconf(_SC_HOST_NAME_MAX); if (hostname_len == -1) { @@ -87,25 +88,22 @@ static int init_hostname(void) { } char hostname[hostname_len]; - str = global_option_get("Hostname"); - if ((str != NULL) && (str[0] != 0)) { - hostname_set(str); - return 0; - } - if (gethostname(hostname, hostname_len) != 0) { fprintf(stderr, "`gethostname' failed and no " "hostname was configured.\n"); return -1; } + hostname_set(hostname); + str = global_option_get("FQDNLookup"); if (IS_FALSE(str)) return 0; + struct addrinfo *ai_list; struct addrinfo ai_hints = {.ai_flags = AI_CANONNAME}; - status = getaddrinfo(hostname, NULL, &ai_hints, &ai_list); + int status = getaddrinfo(hostname, NULL, &ai_hints, &ai_list); if (status != 0) { ERROR("Looking up \"%s\" failed. You have set the " "\"FQDNLookup\" option, but I cannot resolve " -- 2.11.0