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 --- |