diff options
author | Enji Cooper <ngie@FreeBSD.org> | 2017-03-20 06:12:55 +0000 |
---|---|---|
committer | Enji Cooper <ngie@FreeBSD.org> | 2017-03-20 06:12:55 +0000 |
commit | b79299b5e7b8f6ae5fbd86737d50b0056820ab19 (patch) | |
tree | 4d8eb7070af24aea871439375811144647dbece8 /usr.sbin/syslogd | |
parent | 2a016de1a5abdf87ae6e00f879a3600d157a8ca2 (diff) | |
download | src-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.c | 11 |
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) { |