cbcp.c (43313) | cbcp.c (44305) |
---|---|
1/*- 2 * Copyright (c) 1998 Brian Somers <brian@Awfulhak.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 1998 Brian Somers <brian@Awfulhak.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $Id: cbcp.c,v 1.8 1999/01/19 22:15:25 brian Exp $ | 26 * $Id: cbcp.c,v 1.9 1999/01/28 01:56:30 brian Exp $ |
27 */ 28 29#include <sys/param.h> 30 31#include <sys/un.h> 32 33#include <string.h> 34#include <termios.h> --- 287 unchanged lines hidden (view full) --- 322 if (*cbcp->fsm.phone == '\0') 323 cbcp->fsm.type = CBCP_NONUM; 324 else if (!strcmp(cbcp->fsm.phone, "*")) { 325 cbcp->fsm.type = CBCP_SERVERNUM; 326 *cbcp->fsm.phone = '\0'; 327 } else 328 cbcp->fsm.type = CBCP_CLIENTNUM; 329 cbcp_NewPhase(cbcp, CBCP_STOPPED); /* Wait for a REQ */ | 27 */ 28 29#include <sys/param.h> 30 31#include <sys/un.h> 32 33#include <string.h> 34#include <termios.h> --- 287 unchanged lines hidden (view full) --- 322 if (*cbcp->fsm.phone == '\0') 323 cbcp->fsm.type = CBCP_NONUM; 324 else if (!strcmp(cbcp->fsm.phone, "*")) { 325 cbcp->fsm.type = CBCP_SERVERNUM; 326 *cbcp->fsm.phone = '\0'; 327 } else 328 cbcp->fsm.type = CBCP_CLIENTNUM; 329 cbcp_NewPhase(cbcp, CBCP_STOPPED); /* Wait for a REQ */ |
330 cbcp_StartTimer(cbcp, cbcp->fsm.delay * DEF_REQs); | 330 cbcp_StartTimer(cbcp, cbcp->fsm.delay * DEF_FSMTRIES); |
331 } else { 332 if (*cbcp->fsm.phone == '\0') 333 cbcp->fsm.type = CBCP_NONUM; 334 else if (!strcmp(cbcp->fsm.phone, "*")) { 335 cbcp->fsm.type = CBCP_CLIENTNUM; 336 *cbcp->fsm.phone = '\0'; 337 } else if (strchr(cbcp->fsm.phone, ',')) 338 cbcp->fsm.type = CBCP_LISTNUM; 339 else 340 cbcp->fsm.type = CBCP_SERVERNUM; | 331 } else { 332 if (*cbcp->fsm.phone == '\0') 333 cbcp->fsm.type = CBCP_NONUM; 334 else if (!strcmp(cbcp->fsm.phone, "*")) { 335 cbcp->fsm.type = CBCP_CLIENTNUM; 336 *cbcp->fsm.phone = '\0'; 337 } else if (strchr(cbcp->fsm.phone, ',')) 338 cbcp->fsm.type = CBCP_LISTNUM; 339 else 340 cbcp->fsm.type = CBCP_SERVERNUM; |
341 cbcp->fsm.restart = DEF_REQs; | 341 cbcp->fsm.restart = DEF_FSMTRIES; |
342 cbcp_SendReq(cbcp); 343 } 344} 345 346static int 347cbcp_AdjustResponse(struct cbcp *cbcp, struct cbcp_data *data) 348{ 349 /* --- 280 unchanged lines hidden (view full) --- 630 switch (head->code) { 631 case CBCP_REQ: 632 log_Printf(LogCBCP, "%s: RecvReq(%d) state = %s\n", 633 p->dl->name, head->id, cbcpstate(cbcp->fsm.state)); 634 cbcp_data_Show(data); 635 if (cbcp->fsm.state == CBCP_STOPPED || cbcp->fsm.state == CBCP_RESPSENT) { 636 timer_Stop(&cbcp->fsm.timer); 637 if (cbcp_AdjustResponse(cbcp, data)) { | 342 cbcp_SendReq(cbcp); 343 } 344} 345 346static int 347cbcp_AdjustResponse(struct cbcp *cbcp, struct cbcp_data *data) 348{ 349 /* --- 280 unchanged lines hidden (view full) --- 630 switch (head->code) { 631 case CBCP_REQ: 632 log_Printf(LogCBCP, "%s: RecvReq(%d) state = %s\n", 633 p->dl->name, head->id, cbcpstate(cbcp->fsm.state)); 634 cbcp_data_Show(data); 635 if (cbcp->fsm.state == CBCP_STOPPED || cbcp->fsm.state == CBCP_RESPSENT) { 636 timer_Stop(&cbcp->fsm.timer); 637 if (cbcp_AdjustResponse(cbcp, data)) { |
638 cbcp->fsm.restart = DEF_REQs; | 638 cbcp->fsm.restart = DEF_FSMTRIES; |
639 cbcp->fsm.id = head->id; 640 cbcp_SendResponse(cbcp); 641 } else 642 datalink_CBCPFailed(cbcp->p->dl); 643 } else 644 log_Printf(LogCBCP, "%s: unexpected REQ dropped\n", p->dl->name); 645 break; 646 --- 9 unchanged lines hidden (view full) --- 656 if (cbcp->fsm.state == CBCP_REQSENT || cbcp->fsm.state == CBCP_ACKSENT) { 657 timer_Stop(&cbcp->fsm.timer); 658 switch (cbcp_CheckResponse(cbcp, data)) { 659 case CBCP_ACTION_REQ: 660 cbcp_SendReq(cbcp); 661 break; 662 663 case CBCP_ACTION_ACK: | 639 cbcp->fsm.id = head->id; 640 cbcp_SendResponse(cbcp); 641 } else 642 datalink_CBCPFailed(cbcp->p->dl); 643 } else 644 log_Printf(LogCBCP, "%s: unexpected REQ dropped\n", p->dl->name); 645 break; 646 --- 9 unchanged lines hidden (view full) --- 656 if (cbcp->fsm.state == CBCP_REQSENT || cbcp->fsm.state == CBCP_ACKSENT) { 657 timer_Stop(&cbcp->fsm.timer); 658 switch (cbcp_CheckResponse(cbcp, data)) { 659 case CBCP_ACTION_REQ: 660 cbcp_SendReq(cbcp); 661 break; 662 663 case CBCP_ACTION_ACK: |
664 cbcp->fsm.restart = DEF_REQs; | 664 cbcp->fsm.restart = DEF_FSMTRIES; |
665 cbcp_SendAck(cbcp); 666 if (cbcp->fsm.type == CBCP_NONUM) { 667 /* 668 * Don't change state in case the peer doesn't get our ACK, 669 * just bring the layer up. 670 */ 671 timer_Stop(&cbcp->fsm.timer); 672 datalink_NCPUp(cbcp->p->dl); --- 56 unchanged lines hidden --- | 665 cbcp_SendAck(cbcp); 666 if (cbcp->fsm.type == CBCP_NONUM) { 667 /* 668 * Don't change state in case the peer doesn't get our ACK, 669 * just bring the layer up. 670 */ 671 timer_Stop(&cbcp->fsm.timer); 672 datalink_NCPUp(cbcp->p->dl); --- 56 unchanged lines hidden --- |