Deleted Added
full compact
fsm.c (78411) fsm.c (81634)
1/*-
2 * Copyright (c) 1996 - 2001 Brian Somers <brian@Awfulhak.org>
3 * based on work by Toshiharu OHNO <tony-o@iij.ad.jp>
4 * Internet Initiative Japan, Inc (IIJ)
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 11 unchanged lines hidden (view full) ---

20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 *
1/*-
2 * Copyright (c) 1996 - 2001 Brian Somers <brian@Awfulhak.org>
3 * based on work by Toshiharu OHNO <tony-o@iij.ad.jp>
4 * Internet Initiative Japan, Inc (IIJ)
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 11 unchanged lines hidden (view full) ---

20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 *
28 * $FreeBSD: head/usr.sbin/ppp/fsm.c 78411 2001-06-18 15:00:22Z brian $
28 * $FreeBSD: head/usr.sbin/ppp/fsm.c 81634 2001-08-14 16:05:52Z brian $
29 */
30
31#include <sys/param.h>
32#include <netinet/in.h>
33#include <netinet/in_systm.h>
34#include <netinet/ip.h>
29 */
30
31#include <sys/param.h>
32#include <netinet/in.h>
33#include <netinet/in_systm.h>
34#include <netinet/ip.h>
35#include <sys/socket.h>
35#include <sys/un.h>
36
37#include <string.h>
38#include <termios.h>
39
40#include "layer.h"
41#include "ua.h"
42#include "mbuf.h"
43#include "log.h"
44#include "defs.h"
45#include "timer.h"
46#include "fsm.h"
47#include "iplist.h"
48#include "lqr.h"
49#include "hdlc.h"
50#include "throughput.h"
51#include "slcompress.h"
36#include <sys/un.h>
37
38#include <string.h>
39#include <termios.h>
40
41#include "layer.h"
42#include "ua.h"
43#include "mbuf.h"
44#include "log.h"
45#include "defs.h"
46#include "timer.h"
47#include "fsm.h"
48#include "iplist.h"
49#include "lqr.h"
50#include "hdlc.h"
51#include "throughput.h"
52#include "slcompress.h"
53#include "ncpaddr.h"
54#include "ip.h"
52#include "ipcp.h"
53#include "filter.h"
54#include "descriptor.h"
55#include "lcp.h"
56#include "ccp.h"
57#include "link.h"
58#include "mp.h"
59#ifndef NORADIUS
60#include "radius.h"
61#endif
55#include "ipcp.h"
56#include "filter.h"
57#include "descriptor.h"
58#include "lcp.h"
59#include "ccp.h"
60#include "link.h"
61#include "mp.h"
62#ifndef NORADIUS
63#include "radius.h"
64#endif
65#include "ipv6cp.h"
66#include "ncp.h"
62#include "bundle.h"
63#include "async.h"
64#include "physical.h"
65#include "proto.h"
66
67static void FsmSendConfigReq(struct fsm *);
68static void FsmSendTerminateReq(struct fsm *);
69static void FsmInitRestartCounter(struct fsm *, int);

--- 433 unchanged lines hidden (view full) ---

503 case ST_CLOSING:
504 log_Printf(fp->LogLevel, "%s: Error: Got ConfigReq while state = %s\n",
505 fp->link->name, State2Nam(fp->state));
506 case ST_STOPPING:
507 m_freem(bp);
508 return;
509 case ST_OPENED:
510 (*fp->fn->LayerDown)(fp);
67#include "bundle.h"
68#include "async.h"
69#include "physical.h"
70#include "proto.h"
71
72static void FsmSendConfigReq(struct fsm *);
73static void FsmSendTerminateReq(struct fsm *);
74static void FsmInitRestartCounter(struct fsm *, int);

--- 433 unchanged lines hidden (view full) ---

508 case ST_CLOSING:
509 log_Printf(fp->LogLevel, "%s: Error: Got ConfigReq while state = %s\n",
510 fp->link->name, State2Nam(fp->state));
511 case ST_STOPPING:
512 m_freem(bp);
513 return;
514 case ST_OPENED:
515 (*fp->fn->LayerDown)(fp);
511 (*fp->parent->LayerDown)(fp->parent->object, fp);
512 break;
513 }
514
515 bp = m_pullup(bp);
516 dec.ackend = dec.ack;
517 dec.nakend = dec.nak;
518 dec.rejend = dec.rej;
519 (*fp->fn->DecodeConfig)(fp, MBUF_CTOP(bp), flen, MODE_REQ, &dec);

--- 34 unchanged lines hidden (view full) ---

554 (*fp->parent->LayerStart)(fp->parent->object, fp);
555 /* Fall through */
556
557 case ST_OPENED:
558 if (ackaction)
559 NewState(fp, ST_ACKSENT);
560 else
561 NewState(fp, ST_REQSENT);
516 break;
517 }
518
519 bp = m_pullup(bp);
520 dec.ackend = dec.ack;
521 dec.nakend = dec.nak;
522 dec.rejend = dec.rej;
523 (*fp->fn->DecodeConfig)(fp, MBUF_CTOP(bp), flen, MODE_REQ, &dec);

--- 34 unchanged lines hidden (view full) ---

558 (*fp->parent->LayerStart)(fp->parent->object, fp);
559 /* Fall through */
560
561 case ST_OPENED:
562 if (ackaction)
563 NewState(fp, ST_ACKSENT);
564 else
565 NewState(fp, ST_REQSENT);
566 (*fp->parent->LayerDown)(fp->parent->object, fp);
562 break;
563 case ST_REQSENT:
564 if (ackaction)
565 NewState(fp, ST_ACKSENT);
566 break;
567 case ST_ACKRCVD:
568 if (ackaction) {
569 NewState(fp, ST_OPENED);

--- 314 unchanged lines hidden (view full) ---

884 break;
885 case PROTO_IPCP:
886 if (fp->proto == PROTO_LCP) {
887 log_Printf(LogPHASE, "%s: IPCP protocol reject closes IPCP !\n",
888 fp->link->name);
889 fsm_Close(&fp->bundle->ncp.ipcp.fsm);
890 }
891 break;
567 break;
568 case ST_REQSENT:
569 if (ackaction)
570 NewState(fp, ST_ACKSENT);
571 break;
572 case ST_ACKRCVD:
573 if (ackaction) {
574 NewState(fp, ST_OPENED);

--- 314 unchanged lines hidden (view full) ---

889 break;
890 case PROTO_IPCP:
891 if (fp->proto == PROTO_LCP) {
892 log_Printf(LogPHASE, "%s: IPCP protocol reject closes IPCP !\n",
893 fp->link->name);
894 fsm_Close(&fp->bundle->ncp.ipcp.fsm);
895 }
896 break;
897#ifndef NOINET6
898 case PROTO_IPV6CP:
899 if (fp->proto == PROTO_LCP) {
900 log_Printf(LogPHASE, "%s: IPV6CP protocol reject closes IPV6CP !\n",
901 fp->link->name);
902 fsm_Close(&fp->bundle->ncp.ipv6cp.fsm);
903 }
904 break;
905#endif
892 case PROTO_MP:
893 if (fp->proto == PROTO_LCP) {
894 struct lcp *lcp = fsm2lcp(fp);
895
896 if (lcp->want_mrru && lcp->his_mrru) {
897 log_Printf(LogPHASE, "%s: MP protocol reject is fatal !\n",
898 fp->link->name);
899 fsm_Close(fp);

--- 194 unchanged lines hidden ---
906 case PROTO_MP:
907 if (fp->proto == PROTO_LCP) {
908 struct lcp *lcp = fsm2lcp(fp);
909
910 if (lcp->want_mrru && lcp->his_mrru) {
911 log_Printf(LogPHASE, "%s: MP protocol reject is fatal !\n",
912 fp->link->name);
913 fsm_Close(fp);

--- 194 unchanged lines hidden ---