Deleted Added
full compact
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 ---