diff options
-rw-r--r-- | usr.sbin/ppp/Makefile | 4 | ||||
-rw-r--r-- | usr.sbin/ppp/chat.c | 3 | ||||
-rw-r--r-- | usr.sbin/ppp/main.c | 23 | ||||
-rw-r--r-- | usr.sbin/ppp/sig.c | 91 | ||||
-rw-r--r-- | usr.sbin/ppp/sig.h | 41 | ||||
-rw-r--r-- | usr.sbin/ppp/timer.c | 3 |
6 files changed, 13 insertions, 152 deletions
diff --git a/usr.sbin/ppp/Makefile b/usr.sbin/ppp/Makefile index 4109587..a0cf1d2 100644 --- a/usr.sbin/ppp/Makefile +++ b/usr.sbin/ppp/Makefile @@ -1,11 +1,11 @@ -# $Id$ +# $Id: Makefile,v 1.14 1997/02/22 16:09:55 peter Exp $ PROG= ppp SRCS= async.c auth.c ccp.c chap.c chat.c command.c filter.c fsm.c hdlc.c \ ip.c ipcp.c lcp.c lqr.c log.c main.c mbuf.c modem.c os.c \ pap.c pred.c route.c slcompress.c timer.c systems.c uucplock.c vars.c \ vjcomp.c arp.c alias.c alias_db.c alias_ftp.c alias_util.c \ - passwdauth.c sig.c + passwdauth.c #CFLAGS+= -DHAVE_SHELL_CMD_WITH_ANY_MODE CFLAGS += -Wall -DUSE_PERROR -DMSEXT -DPASSWDAUTH LDADD += -lmd -lcrypt -lutil diff --git a/usr.sbin/ppp/chat.c b/usr.sbin/ppp/chat.c index 5835de8..acb57c0 100644 --- a/usr.sbin/ppp/chat.c +++ b/usr.sbin/ppp/chat.c @@ -18,7 +18,7 @@ * Columbus, OH 43221 * (614)451-1883 * - * $Id: chat.c,v 1.18 1997/03/08 10:04:11 ache Exp $ + * $Id: chat.c,v 1.19 1997/03/08 12:15:58 ache Exp $ * * TODO: * o Support more UUCP compatible control sequences. @@ -36,7 +36,6 @@ #include <errno.h> #include <sys/cdefs.h> #include <signal.h> -#include "sig.h" #include <sys/wait.h> #include "timeout.h" #include "vars.h" diff --git a/usr.sbin/ppp/main.c b/usr.sbin/ppp/main.c index b3ae332..729af0d 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.34 1997/03/08 10:04:21 ache Exp $ + * $Id$ * * TODO: * o Add commands for traffic summary, version display, etc. @@ -28,9 +28,7 @@ #include <paths.h> #include <sys/time.h> #include <termios.h> -#include <sys/cdefs.h> #include <signal.h> -#include "sig.h" #include <sys/wait.h> #include <errno.h> #include <netdb.h> @@ -213,8 +211,8 @@ int signo; static void TerminalCont() { - pending_signal(SIGCONT, SIG_DFL); - pending_signal(SIGTSTP, TerminalStop); + (void)signal(SIGCONT, SIG_DFL); + (void)signal(SIGTSTP, TerminalStop); TtyCommandMode(getpgrp() == tcgetpgrp(0)); } @@ -222,9 +220,9 @@ static void TerminalStop(signo) int signo; { - pending_signal(SIGCONT, TerminalCont); + (void)signal(SIGCONT, TerminalCont); TtyOldMode(); - pending_signal(SIGTSTP, SIG_DFL); + signal(SIGTSTP, SIG_DFL); kill(getpid(), signo); } @@ -364,13 +362,13 @@ char **argv; if(mode & MODE_INTER) { #ifdef SIGTSTP - pending_signal(SIGTSTP, TerminalStop); + signal(SIGTSTP, TerminalStop); #endif #ifdef SIGTTIN - pending_signal(SIGTTIN, TerminalStop); + signal(SIGTTIN, TerminalStop); #endif #ifdef SIGTTOU - pending_signal(SIGTTOU, SIG_IGN); + signal(SIGTTOU, SIG_IGN); #endif } @@ -792,8 +790,6 @@ DoLoop() #ifndef SIGALRM usleep(TICKUNIT); TimerService(); -#else - handle_signals(); #endif /* If there are aren't many packets queued, look for some more. */ @@ -829,8 +825,7 @@ DoLoop() if ( i < 0 ) { if ( errno == EINTR ) { - handle_signals(); - continue; + continue; /* Got a signal - should have been dealt with */ } perror("select"); break; diff --git a/usr.sbin/ppp/sig.c b/usr.sbin/ppp/sig.c deleted file mode 100644 index 9763dab..0000000 --- a/usr.sbin/ppp/sig.c +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * Copyright (c) 1997 - * Brian Somers <brian@awfulhak.demon.co.uk>. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id: sig.c,v 1.3 1997/02/23 20:01:19 brian Exp $ - * - * TODO: - * - */ - -#include <sys/cdefs.h> -#include "sig.h" -#include <sys/types.h> -#include <signal.h> -#include "mbuf.h" -#include "log.h" - -#define __MAXSIG (32) /* Sizeof u_long: Make life convenient.... */ -static u_long caused; /* A mask of pending signals */ -static sig_type handler[ __MAXSIG ]; /* all start at SIG_DFL */ - - -/* Record a signal in the "caused" mask */ - -static void signal_recorder(int sig) { - if (sig > 0 && sig <= __MAXSIG) - caused |= (1<<(sig-1)); -} - - -/* - set up signal_recorder, and record handler as the function to ultimately - call in handle_signal() -*/ - -sig_type pending_signal(int sig,sig_type fn) { - sig_type Result; - - if (sig <= 0 || sig > __MAXSIG) { - /* Oops - we must be a bit out of date (too many sigs ?) */ - logprintf("Eeek! %s:%s: I must be out of date!\n",__FILE__,__LINE__); - return signal(sig,fn); - } - - Result = handler[sig-1]; - if (fn == SIG_DFL || fn == SIG_IGN) { - handler[sig-1] = (sig_type)0; - signal(sig,fn); - } else { - handler[sig-1] = fn; - signal(sig,signal_recorder); - } - caused &= ~(1<<(sig-1)); - return Result; -} - - -/* Call the handlers for any pending signals */ - -void handle_signals() { - int sig; - - if (caused) - for (sig=0; sig<__MAXSIG; sig++, caused>>=1) - if (caused&1) - (*handler[sig])(sig+1); -} diff --git a/usr.sbin/ppp/sig.h b/usr.sbin/ppp/sig.h deleted file mode 100644 index cbc41d5..0000000 --- a/usr.sbin/ppp/sig.h +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 1997 - * Brian Somers <brian@awfulhak.demon.co.uk>. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id: sig.h,v 1.4 1997/02/23 20:01:20 brian Exp $ - * - * TODO: - * - */ - -typedef void (*sig_type)(int); - -/* Call this instead of signal() */ -extern sig_type pending_signal __P((int, sig_type)); - -/* Call this when you want things to *actually* happen */ -extern void handle_signals __P((void)); diff --git a/usr.sbin/ppp/timer.c b/usr.sbin/ppp/timer.c index 236bdbe..978ea63 100644 --- a/usr.sbin/ppp/timer.c +++ b/usr.sbin/ppp/timer.c @@ -17,7 +17,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * $Id: timer.c,v 1.10 1997/02/25 14:05:17 brian Exp $ + * $Id: timer.c,v 1.11 1997/03/08 09:55:42 ache Exp $ * * TODO: */ @@ -26,7 +26,6 @@ #include <signal.h> #include "timeout.h" #include <sys/cdefs.h> -#include "sig.h" #ifdef SIGALRM #include <errno.h> #endif |