aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/ppp/fsm.c
diff options
context:
space:
mode:
authorBrian Somers <brian@FreeBSD.org>2001-06-18 15:00:22 +0000
committerBrian Somers <brian@FreeBSD.org>2001-06-18 15:00:22 +0000
commit6cf6ee7625dab3f8ea6a21937c92473a2b49031c (patch)
treeb58f089492e9f96c30634a8674bc53fab1f5a1eb /usr.sbin/ppp/fsm.c
parentc8b9fb53a1353fb6bf7c5fe8e8f590a15511a898 (diff)
downloadsrc-6cf6ee7625dab3f8ea6a21937c92473a2b49031c.tar.gz
src-6cf6ee7625dab3f8ea6a21937c92473a2b49031c.zip
Add support for stateful MPPE (microsoft encryption) providing
encryption compatibility with Windows 2000. Stateful encryption uses less CPU but is bad on lossy transports. The ``set mppe'' command has been expanded. If it's used with any arguments, ppp will insist on encryption, closing LCP if the other end refuses. Unfortunately, Microsoft have abused the CCP reset request so that receiving a reset request does not result in a reset ack when using MPPE... Sponsored by: Monzoon Networks AG and FreeBSD Services Limited
Notes
Notes: svn path=/head/; revision=78411
Diffstat (limited to 'usr.sbin/ppp/fsm.c')
-rw-r--r--usr.sbin/ppp/fsm.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/usr.sbin/ppp/fsm.c b/usr.sbin/ppp/fsm.c
index 109241060295..3c4204a21120 100644
--- a/usr.sbin/ppp/fsm.c
+++ b/usr.sbin/ppp/fsm.c
@@ -978,14 +978,15 @@ FsmRecvTimeRemain(struct fsm *fp, struct fsmheader *lhp, struct mbuf *bp)
static void
FsmRecvResetReq(struct fsm *fp, struct fsmheader *lhp, struct mbuf *bp)
{
- (*fp->fn->RecvResetReq)(fp);
- /*
- * All sendable compressed packets are queued in the first (lowest
- * priority) modem output queue.... dump 'em to the priority queue
- * so that they arrive at the peer before our ResetAck.
- */
- link_SequenceQueue(fp->link);
- fsm_Output(fp, CODE_RESETACK, lhp->id, NULL, 0, MB_CCPOUT);
+ if ((*fp->fn->RecvResetReq)(fp)) {
+ /*
+ * All sendable compressed packets are queued in the first (lowest
+ * priority) modem output queue.... dump 'em to the priority queue
+ * so that they arrive at the peer before our ResetAck.
+ */
+ link_SequenceQueue(fp->link);
+ fsm_Output(fp, CODE_RESETACK, lhp->id, NULL, 0, MB_CCPOUT);
+ }
m_freem(bp);
}
@@ -1050,11 +1051,12 @@ fsm_Input(struct fsm *fp, struct mbuf *bp)
(*codep->recv)(fp, &lh, bp);
}
-void
+int
fsm_NullRecvResetReq(struct fsm *fp)
{
log_Printf(fp->LogLevel, "%s: Oops - received unexpected reset req\n",
fp->link->name);
+ return 1;
}
void