summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/fsm.c
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>1998-08-01 01:02:41 +0000
committerbrian <brian@FreeBSD.org>1998-08-01 01:02:41 +0000
commit16c3373eb0f0d353895742f81daf8a2b2a6cf90d (patch)
tree1865109945b1d7343582bd9009f2c644f8fbab70 /usr.sbin/ppp/fsm.c
parentd3b63b723f6605c08198b4c8a78bedb14bdfd551 (diff)
downloadFreeBSD-src-16c3373eb0f0d353895742f81daf8a2b2a6cf90d.zip
FreeBSD-src-16c3373eb0f0d353895742f81daf8a2b2a6cf90d.tar.gz
When we receive an LCP config REQ in Opened state,
do TLD *before* processing the config request as TLD initialises the peers LCP values. It's strange that an IRC isn't required here - but I'll bow to the wisdom of the rfc.
Diffstat (limited to 'usr.sbin/ppp/fsm.c')
-rw-r--r--usr.sbin/ppp/fsm.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/usr.sbin/ppp/fsm.c b/usr.sbin/ppp/fsm.c
index 4888e09..dc5913f 100644
--- a/usr.sbin/ppp/fsm.c
+++ b/usr.sbin/ppp/fsm.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: fsm.c,v 1.34 1998/06/27 23:48:43 brian Exp $
+ * $Id: fsm.c,v 1.35 1998/06/30 23:04:15 brian Exp $
*
* TODO:
*/
@@ -488,6 +488,10 @@ FsmRecvConfigReq(struct fsm *fp, struct fsmheader *lhp, struct mbuf *bp)
case ST_STOPPING:
mbuf_Free(bp);
return;
+ case ST_OPENED:
+ (*fp->fn->LayerDown)(fp);
+ (*fp->parent->LayerDown)(fp->parent->object, fp);
+ break;
}
dec.ackend = dec.ack;
@@ -501,13 +505,11 @@ FsmRecvConfigReq(struct fsm *fp, struct fsmheader *lhp, struct mbuf *bp)
ackaction = 1;
switch (fp->state) {
- case ST_OPENED:
- (*fp->fn->LayerDown)(fp);
- FsmSendConfigReq(fp);
- (*fp->parent->LayerDown)(fp->parent->object, fp);
- break;
case ST_STOPPED:
FsmInitRestartCounter(fp);
+ /* Fall through */
+
+ case ST_OPENED:
FsmSendConfigReq(fp);
break;
}
OpenPOWER on IntegriCloud