diff options
author | brian <brian@FreeBSD.org> | 1997-03-13 14:53:55 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 1997-03-13 14:53:55 +0000 |
commit | ccae52be0e9d2b421203eecf2021979143b75798 (patch) | |
tree | b65dc6e6b670a0c15db3ea4a5fce47b5518cf2d1 | |
parent | 1c4cdc1a36e9685f475367263a86a335a9e417b2 (diff) | |
download | FreeBSD-src-ccae52be0e9d2b421203eecf2021979143b75798.zip FreeBSD-src-ccae52be0e9d2b421203eecf2021979143b75798.tar.gz |
Requested by: Harlan Stenn <Harlan.Stenn@pfcs.com>
Accept SIGHUP as a "re-open logfile" signal. As ppp
doesn't set it's serial line to it's controlling terminal,
we can use HUP :)
This is a candidate for 2.2. The log.[ch] changes won't
conflict, but the main.c changes will. We just want to change the
kill(...,SIGHUP) to a SIGTERM and change the signal(SIGHUP,Hangup)
to a pending_signal(SIGHUP,LogReOpen).
-rw-r--r-- | usr.sbin/ppp/log.c | 27 | ||||
-rw-r--r-- | usr.sbin/ppp/log.h | 3 | ||||
-rw-r--r-- | usr.sbin/ppp/main.c | 6 |
3 files changed, 31 insertions, 5 deletions
diff --git a/usr.sbin/ppp/log.c b/usr.sbin/ppp/log.c index 479969a..2f57814 100644 --- a/usr.sbin/ppp/log.c +++ b/usr.sbin/ppp/log.c @@ -17,7 +17,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * $Id$ + * $Id: log.c,v 1.7 1997/02/22 16:10:26 peter Exp $ * */ #include "defs.h" @@ -280,3 +280,28 @@ va_dcl vlogprintf(format, ap); va_end(ap); } + +void +LogReOpen( sig ) +int sig; +{ + FILE *nlogfile; + +#ifdef USELOGFILE + nlogfile = fopen(LOGFILE, "a"); + if (nlogfile == NULL) { + LogPrintf(~0,"can't re-open %s.\r\n", LOGFILE); + } + else { + LogPrintf(~0,"log file closed due to signal %d.\r\n",sig); + LogFlush(); + fclose(logfile); + logfile = nlogfile; + logptr = logbuff; + logcnt = 0; + logtop = lognext = NULL; + LogPrintf(~0,"log file opened due to signal %d.\r\n",sig); + } +#endif + LogFlush(); +} diff --git a/usr.sbin/ppp/log.h b/usr.sbin/ppp/log.h index 7ac5df2..d56b77b 100644 --- a/usr.sbin/ppp/log.h +++ b/usr.sbin/ppp/log.h @@ -15,7 +15,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * $Id$ + * $Id: log.h,v 1.8 1997/02/22 16:10:27 peter Exp $ * * TODO: */ @@ -62,6 +62,7 @@ extern int loglevel; extern void LogTimeStamp __P((void)); extern int LogOpen __P((void)); +extern void LogReOpen __P((int)); extern void DupLog __P((void)); extern void LogClose __P((void)); extern void logprintf __P((char *, ...)), LogPrintf __P((int, char *, ...)); diff --git a/usr.sbin/ppp/main.c b/usr.sbin/ppp/main.c index 6e83847..1634273 100644 --- a/usr.sbin/ppp/main.c +++ b/usr.sbin/ppp/main.c @@ -17,7 +17,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * $Id: main.c,v 1.37 1997/03/10 06:21:01 ache Exp $ + * $Id: main.c,v 1.38 1997/03/13 12:45:30 brian Exp $ * * TODO: * o Add commands for traffic summary, version display, etc. @@ -187,7 +187,7 @@ int signo; abort(); } if (BGPid) { - kill (BGPid, SIGHUP); + kill (BGPid, SIGTERM); exit (EX_HANGUP); } else { @@ -349,7 +349,7 @@ char **argv; tcgetattr(0, &oldtio); /* Save original tty mode */ - signal(SIGHUP, Hangup); + pending_signal(SIGHUP, LogReOpen); pending_signal(SIGTERM, CloseSession); pending_signal(SIGINT, CloseSession); pending_signal(SIGQUIT, CloseSession); |