summaryrefslogtreecommitdiff
path: root/usr.sbin/ppp
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/ppp')
-rw-r--r--usr.sbin/ppp/ppp/lcp.c7
-rw-r--r--usr.sbin/ppp/ppp/timer.c20
2 files changed, 17 insertions, 10 deletions
diff --git a/usr.sbin/ppp/ppp/lcp.c b/usr.sbin/ppp/ppp/lcp.c
index a76f0928d7e..9980ebd9641 100644
--- a/usr.sbin/ppp/ppp/lcp.c
+++ b/usr.sbin/ppp/ppp/lcp.c
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $OpenBSD: lcp.c,v 1.31 2001/08/19 23:22:18 brian Exp $
+ * $OpenBSD: lcp.c,v 1.32 2001/09/04 23:35:59 millert Exp $
*/
#include <sys/param.h>
@@ -968,13 +968,16 @@ LcpDecodeConfig(struct fsm *fp, u_char *cp, int plen, int mode_type,
if (lcp->want_magic) {
/* Validate magic number */
if (magic == lcp->want_magic) {
+ sigset_t emptyset;
+
log_Printf(LogLCP, "Magic is same (%08lx) - %d times\n",
(u_long)magic, ++lcp->LcpFailedMagic);
lcp->want_magic = GenerateMagic();
memcpy(dec->nakend, cp, 6);
dec->nakend += 6;
ualarm(TICKUNIT * (4 + 4 * lcp->LcpFailedMagic), 0);
- sigpause(0);
+ sigemptyset(&emptyset);
+ sigsuspend(&emptyset);
} else {
lcp->his_magic = magic;
memcpy(dec->ackend, cp, length);
diff --git a/usr.sbin/ppp/ppp/timer.c b/usr.sbin/ppp/ppp/timer.c
index b701abe7e2f..67a3de36a85 100644
--- a/usr.sbin/ppp/ppp/timer.c
+++ b/usr.sbin/ppp/ppp/timer.c
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $OpenBSD: timer.c,v 1.9 2001/06/13 21:33:42 brian Exp $
+ * $OpenBSD: timer.c,v 1.10 2001/09/04 23:35:59 millert Exp $
*/
#include <errno.h>
@@ -63,11 +63,13 @@ tState2Nam(u_int state)
void
timer_Stop(struct pppTimer *tp)
{
- int omask;
+ sigset_t mask, omask;
- omask = sigblock(sigmask(SIGALRM));
+ sigemptyset(&mask);
+ sigaddset(&mask, SIGALRM);
+ sigprocmask(SIG_BLOCK, &mask, &omask);
StopTimerNoBlock(tp);
- sigsetmask(omask);
+ sigprocmask(SIG_SETMASK, &omask, NULL);
}
void
@@ -76,16 +78,18 @@ timer_Start(struct pppTimer *tp)
struct itimerval itimer;
struct pppTimer *t, *pt;
u_long ticks = 0;
- int omask;
+ sigset_t mask, omask;
- omask = sigblock(sigmask(SIGALRM));
+ sigemptyset(&mask);
+ sigaddset(&mask, SIGALRM);
+ sigprocmask(SIG_BLOCK, &mask, &omask);
if (tp->state != TIMER_STOPPED)
StopTimerNoBlock(tp);
if (tp->load == 0) {
log_Printf(LogTIMER, "%s timer[%p] has 0 load!\n", tp->name, tp);
- sigsetmask(omask);
+ sigprocmask(SIG_SETMASK, &omask, NULL);
return;
}
@@ -121,7 +125,7 @@ timer_Start(struct pppTimer *tp)
if (t)
t->rest -= tp->rest;
- sigsetmask(omask);
+ sigprocmask(SIG_SETMASK, &omask, NULL);
}
static void