diff options
| author | John Polstra <jdp@FreeBSD.org> | 1997-03-20 16:28:27 +0000 |
|---|---|---|
| committer | John Polstra <jdp@FreeBSD.org> | 1997-03-20 16:28:27 +0000 |
| commit | cf49f439121fc2f82f90b5a92745aa6996f0c91d (patch) | |
| tree | 8ede7ffc2c6f704f93ab790d6916a9ce4748d124 | |
| parent | d00f4c321d8a1410869ed6a9c72a871068f501c7 (diff) | |
Notes
| -rw-r--r-- | lib/libc/gen/syslog.c | 33 | ||||
| -rw-r--r-- | sys/sys/syslog.h | 3 |
2 files changed, 25 insertions, 11 deletions
diff --git a/lib/libc/gen/syslog.c b/lib/libc/gen/syslog.c index b1160c4574e8..0eb721e72fab 100644 --- a/lib/libc/gen/syslog.c +++ b/lib/libc/gen/syslog.c @@ -36,7 +36,7 @@ static char sccsid[] = "@(#)syslog.c 8.5 (Berkeley) 4/29/95"; */ static const char rcsid[] = - "$Id: syslog.c,v 1.11 1997/02/22 14:58:18 peter Exp $"; + "$Id: syslog.c,v 1.12 1997/03/11 11:52:33 peter Exp $"; #endif /* LIBC_SCCS and not lint */ #include <sys/types.h> @@ -273,9 +273,6 @@ vsyslog(pri, fmt, ap) (void)close(fd); } } - -static struct sockaddr SyslogAddr; /* AF_UNIX address of local logger */ - static void disconnectlog() { @@ -294,20 +291,36 @@ disconnectlog() static void connectlog() { + struct sockaddr SyslogAddr; /* AF_UNIX address of local logger */ + if (LogFile == -1) { - SyslogAddr.sa_family = AF_UNIX; - (void)strncpy(SyslogAddr.sa_data, _PATH_LOG, - sizeof(SyslogAddr.sa_data)); if ((LogFile = socket(AF_UNIX, SOCK_DGRAM, 0)) == -1) return; (void)fcntl(LogFile, F_SETFD, 1); } if (LogFile != -1 && !connected) { - if (connect(LogFile, &SyslogAddr, sizeof(SyslogAddr)) == -1) { + SyslogAddr.sa_len = sizeof(SyslogAddr); + SyslogAddr.sa_family = AF_UNIX; + (void)strncpy(SyslogAddr.sa_data, _PATH_LOG, + sizeof(SyslogAddr.sa_data)); + connected = connect(LogFile, &SyslogAddr, + sizeof(SyslogAddr)) != -1; + + if (!connected) { + /* + * Try the old "/dev/log" path, for backward + * compatibility. + */ + (void)strncpy(SyslogAddr.sa_data, _PATH_OLDLOG, + sizeof(SyslogAddr.sa_data)); + connected = connect(LogFile, &SyslogAddr, + sizeof(SyslogAddr)) != -1; + } + + if (!connected) { (void)close(LogFile); LogFile = -1; - } else - connected = 1; + } } } diff --git a/sys/sys/syslog.h b/sys/sys/syslog.h index cf01c03a1406..49e4e5f3d511 100644 --- a/sys/sys/syslog.h +++ b/sys/sys/syslog.h @@ -31,13 +31,14 @@ * SUCH DAMAGE. * * @(#)syslog.h 8.1 (Berkeley) 6/2/93 - * $Id: syslog.h,v 1.11 1997/02/26 06:03:20 mpp Exp $ + * $Id: syslog.h,v 1.12 1997/03/02 09:19:15 joerg Exp $ */ #ifndef _SYS_SYSLOG_H_ #define _SYS_SYSLOG_H_ #define _PATH_LOG "/var/run/log" +#define _PATH_OLDLOG "/dev/log" /* backward compatibility */ /* * priorities/facilities are encoded into a single 32-bit quantity, where the |
