From ccae52be0e9d2b421203eecf2021979143b75798 Mon Sep 17 00:00:00 2001 From: brian Date: Thu, 13 Mar 1997 14:53:55 +0000 Subject: Requested by: Harlan Stenn 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). --- usr.sbin/ppp/log.c | 27 ++++++++++++++++++++++++++- usr.sbin/ppp/log.h | 3 ++- usr.sbin/ppp/main.c | 6 +++--- 3 files changed, 31 insertions(+), 5 deletions(-) (limited to 'usr.sbin/ppp') 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); -- cgit v1.1