aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/syslogd
diff options
context:
space:
mode:
authorEnji Cooper <ngie@FreeBSD.org>2017-03-20 06:12:55 +0000
committerEnji Cooper <ngie@FreeBSD.org>2017-03-20 06:12:55 +0000
commitb79299b5e7b8f6ae5fbd86737d50b0056820ab19 (patch)
tree4d8eb7070af24aea871439375811144647dbece8 /usr.sbin/syslogd
parent2a016de1a5abdf87ae6e00f879a3600d157a8ca2 (diff)
downloadsrc-b79299b5e7b8f6ae5fbd86737d50b0056820ab19.tar.gz
src-b79299b5e7b8f6ae5fbd86737d50b0056820ab19.zip
syslogd: try to print out a more helpful message in socksetup(..) if/when
getaddrinfo fails If the asprintf call fails, fall back to the old code (as a last ditch effort to provide the end-user with helpful output). Sponsored by: Dell EMC Isilon
Notes
Notes: svn path=/head/; revision=315622
Diffstat (limited to 'usr.sbin/syslogd')
-rw-r--r--usr.sbin/syslogd/syslogd.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c
index 9271ff51c2da..dea71b03cb4e 100644
--- a/usr.sbin/syslogd/syslogd.c
+++ b/usr.sbin/syslogd/syslogd.c
@@ -2907,8 +2907,17 @@ socksetup(struct peer *pe)
pe->pe_serv = "syslog";
error = getaddrinfo(pe->pe_name, pe->pe_serv, &hints, &res0);
if (error) {
- logerror(gai_strerror(error));
+ char *msgbuf;
+
+ asprintf(&msgbuf, "getaddrinfo failed for %s%s: %s",
+ pe->pe_name == NULL ? "" : pe->pe_name, pe->pe_serv,
+ gai_strerror(error));
errno = 0;
+ if (msgbuf == NULL)
+ logerror(gai_strerror(error));
+ else
+ logerror(msgbuf);
+ free(msgbuf);
die(0);
}
for (res = res0; res != NULL; res = res->ai_next) {