Commit c574321d authored by Rich Felker's avatar Rich Felker
Browse files

check for connect failure in syslog log opening

based on patch by Dima Krasner, with minor improvements for code size.
connect can fail if there is no listening syslogd, in which case a
useless socket was kept open, preventing subsequent syslog call from
attempting to connect again.
parent 11ac2a6e
......@@ -46,8 +46,12 @@ void closelog(void)
static void __openlog()
{
log_fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0);
if (log_fd >= 0) connect(log_fd, (void *)&log_addr, sizeof log_addr);
int fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0);
if (fd < 0) return;
if (connect(fd, (void *)&log_addr, sizeof log_addr) < 0)
close(fd);
else
log_fd = fd;
}
void openlog(const char *ident, int opt, int facility)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment