summaryrefslogtreecommitdiffstats
path: root/sys/net/if_spppsubr.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net/if_spppsubr.c')
-rw-r--r--sys/net/if_spppsubr.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/sys/net/if_spppsubr.c b/sys/net/if_spppsubr.c
index 8a64aa4..7da9809 100644
--- a/sys/net/if_spppsubr.c
+++ b/sys/net/if_spppsubr.c
@@ -17,7 +17,7 @@
*
* From: Version 2.4, Thu Apr 30 17:17:21 MSD 1997
*
- * $Id: if_spppsubr.c,v 1.46 1998/12/04 22:54:52 archie Exp $
+ * $Id: if_spppsubr.c,v 1.47 1998/12/11 21:40:13 phk Exp $
*/
#include <sys/param.h>
@@ -1405,12 +1405,12 @@ sppp_cp_input(const struct cp *cp, struct sppp *sp, struct mbuf *m)
case STATE_ACK_SENT:
break;
case STATE_CLOSING:
- (cp->tlf)(sp);
sppp_cp_change_state(cp, sp, STATE_CLOSED);
+ (cp->tlf)(sp);
break;
case STATE_STOPPING:
- (cp->tlf)(sp);
sppp_cp_change_state(cp, sp, STATE_STOPPED);
+ (cp->tlf)(sp);
break;
case STATE_ACK_RCVD:
sppp_cp_change_state(cp, sp, STATE_REQ_SENT);
@@ -1575,8 +1575,9 @@ sppp_down_event(const struct cp *cp, struct sppp *sp)
sppp_cp_change_state(cp, sp, STATE_INITIAL);
break;
case STATE_STOPPED:
+ sppp_cp_change_state(cp, sp, STATE_STARTING);
(cp->tls)(sp);
- /* fall through */
+ break;
case STATE_STOPPING:
case STATE_REQ_SENT:
case STATE_ACK_RCVD:
@@ -1607,8 +1608,8 @@ sppp_open_event(const struct cp *cp, struct sppp *sp)
switch (sp->state[cp->protoidx]) {
case STATE_INITIAL:
- (cp->tls)(sp);
sppp_cp_change_state(cp, sp, STATE_STARTING);
+ (cp->tls)(sp);
break;
case STATE_STARTING:
break;
@@ -1647,8 +1648,8 @@ sppp_close_event(const struct cp *cp, struct sppp *sp)
case STATE_CLOSING:
break;
case STATE_STARTING:
- (cp->tlf)(sp);
sppp_cp_change_state(cp, sp, STATE_INITIAL);
+ (cp->tlf)(sp);
break;
case STATE_STOPPED:
sppp_cp_change_state(cp, sp, STATE_CLOSED);
@@ -1686,18 +1687,18 @@ sppp_to_event(const struct cp *cp, struct sppp *sp)
/* TO- event */
switch (sp->state[cp->protoidx]) {
case STATE_CLOSING:
- (cp->tlf)(sp);
sppp_cp_change_state(cp, sp, STATE_CLOSED);
+ (cp->tlf)(sp);
break;
case STATE_STOPPING:
- (cp->tlf)(sp);
sppp_cp_change_state(cp, sp, STATE_STOPPED);
+ (cp->tlf)(sp);
break;
case STATE_REQ_SENT:
case STATE_ACK_RCVD:
case STATE_ACK_SENT:
- (cp->tlf)(sp);
sppp_cp_change_state(cp, sp, STATE_STOPPED);
+ (cp->tlf)(sp);
break;
}
else
@@ -2336,6 +2337,8 @@ sppp_lcp_tls(struct sppp *sp)
/* Notify lower layer if desired. */
if (sp->pp_tls)
(sp->pp_tls)(sp);
+ else
+ (sp->pp_up)(sp);
}
static void
@@ -2350,6 +2353,8 @@ sppp_lcp_tlf(struct sppp *sp)
/* Notify lower layer if desired. */
if (sp->pp_tlf)
(sp->pp_tlf)(sp);
+ else
+ (sp->pp_down)(sp);
}
static void
OpenPOWER on IntegriCloud