Deleted Added
full compact
datalink.c (43525) datalink.c (43693)
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: datalink.c,v 1.27 1999/02/01 13:42:24 brian Exp $
26 * $Id: datalink.c,v 1.28 1999/02/02 09:35:17 brian Exp $
27 */
28
29#include <sys/param.h>
30#include <netinet/in.h>
31#include <netinet/in_systm.h>
32#include <netinet/ip.h>
33#include <sys/un.h>
34

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

464
465static void
466datalink_LayerUp(void *v, struct fsm *fp)
467{
468 /* The given fsm is now up */
469 struct datalink *dl = (struct datalink *)v;
470
471 if (fp->proto == PROTO_LCP) {
27 */
28
29#include <sys/param.h>
30#include <netinet/in.h>
31#include <netinet/in_systm.h>
32#include <netinet/ip.h>
33#include <sys/un.h>
34

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

464
465static void
466datalink_LayerUp(void *v, struct fsm *fp)
467{
468 /* The given fsm is now up */
469 struct datalink *dl = (struct datalink *)v;
470
471 if (fp->proto == PROTO_LCP) {
472 datalink_GotAuthname(dl, "", 0);
472 datalink_GotAuthname(dl, "");
473 dl->physical->link.lcp.auth_ineed = dl->physical->link.lcp.want_auth;
474 dl->physical->link.lcp.auth_iwait = dl->physical->link.lcp.his_auth;
475 if (dl->physical->link.lcp.his_auth || dl->physical->link.lcp.want_auth) {
476 if (bundle_Phase(dl->bundle) == PHASE_ESTABLISH)
477 bundle_NewPhase(dl->bundle, PHASE_AUTHENTICATE);
478 log_Printf(LogPHASE, "%s: his = %s, mine = %s\n", dl->name,
479 Auth2Nam(dl->physical->link.lcp.his_auth),
480 Auth2Nam(dl->physical->link.lcp.want_auth));
481 if (dl->physical->link.lcp.his_auth == PROTO_PAP)
473 dl->physical->link.lcp.auth_ineed = dl->physical->link.lcp.want_auth;
474 dl->physical->link.lcp.auth_iwait = dl->physical->link.lcp.his_auth;
475 if (dl->physical->link.lcp.his_auth || dl->physical->link.lcp.want_auth) {
476 if (bundle_Phase(dl->bundle) == PHASE_ESTABLISH)
477 bundle_NewPhase(dl->bundle, PHASE_AUTHENTICATE);
478 log_Printf(LogPHASE, "%s: his = %s, mine = %s\n", dl->name,
479 Auth2Nam(dl->physical->link.lcp.his_auth),
480 Auth2Nam(dl->physical->link.lcp.want_auth));
481 if (dl->physical->link.lcp.his_auth == PROTO_PAP)
482 auth_StartChallenge(&dl->pap, dl->physical, pap_SendChallenge);
482 auth_StartReq(&dl->pap);
483 if (dl->physical->link.lcp.want_auth == PROTO_CHAP)
483 if (dl->physical->link.lcp.want_auth == PROTO_CHAP)
484 auth_StartChallenge(&dl->chap.auth, dl->physical, chap_SendChallenge);
484 auth_StartReq(&dl->chap.auth);
485 } else
486 datalink_AuthOk(dl);
487 }
488}
489
490void
485 } else
486 datalink_AuthOk(dl);
487 }
488}
489
490void
491datalink_GotAuthname(struct datalink *dl, const char *name, int len)
491datalink_GotAuthname(struct datalink *dl, const char *name)
492{
492{
493 if (len >= sizeof dl->peer.authname)
494 len = sizeof dl->peer.authname - 1;
495 strncpy(dl->peer.authname, name, len);
496 dl->peer.authname[len] = '\0';
493 strncpy(dl->peer.authname, name, sizeof dl->peer.authname - 1);
494 dl->peer.authname[sizeof dl->peer.authname - 1] = '\0';
497}
498
499void
500datalink_NCPUp(struct datalink *dl)
501{
502 int ccpok = ccp_SetOpenMode(&dl->physical->link.ccp);
503
504 if (dl->physical->link.lcp.want_mrru && dl->physical->link.lcp.his_mrru) {

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

719 peerid_Init(&dl->peer);
720 dl->parent = &bundle->fsm;
721 dl->fsmp.LayerStart = datalink_LayerStart;
722 dl->fsmp.LayerUp = datalink_LayerUp;
723 dl->fsmp.LayerDown = datalink_LayerDown;
724 dl->fsmp.LayerFinish = datalink_LayerFinish;
725 dl->fsmp.object = dl;
726
495}
496
497void
498datalink_NCPUp(struct datalink *dl)
499{
500 int ccpok = ccp_SetOpenMode(&dl->physical->link.ccp);
501
502 if (dl->physical->link.lcp.want_mrru && dl->physical->link.lcp.his_mrru) {

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

717 peerid_Init(&dl->peer);
718 dl->parent = &bundle->fsm;
719 dl->fsmp.LayerStart = datalink_LayerStart;
720 dl->fsmp.LayerUp = datalink_LayerUp;
721 dl->fsmp.LayerDown = datalink_LayerDown;
722 dl->fsmp.LayerFinish = datalink_LayerFinish;
723 dl->fsmp.object = dl;
724
727 auth_Init(&dl->pap);
728 auth_Init(&dl->chap.auth);
729
730 if ((dl->physical = modem_Create(dl, type)) == NULL) {
731 free(dl->name);
732 free(dl);
733 return NULL;
734 }
725 if ((dl->physical = modem_Create(dl, type)) == NULL) {
726 free(dl->name);
727 free(dl);
728 return NULL;
729 }
730
731 pap_Init(&dl->pap, dl->physical);
732 chap_Init(&dl->chap, dl->physical);
735 cbcp_Init(&dl->cbcp, dl->physical);
736 chat_Init(&dl->chat, dl->physical, NULL, 1, NULL);
737
738 log_Printf(LogPHASE, "%s: Created in %s state\n",
739 dl->name, datalink_State(dl));
740
741 return dl;
742}

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

769 memset(&dl->dial_timer, '\0', sizeof dl->dial_timer);
770 dl->dial_tries = 0;
771 dl->reconnect_tries = 0;
772 dl->name = strdup(name);
773 peerid_Init(&dl->peer);
774 dl->parent = odl->parent;
775 memcpy(&dl->fsmp, &odl->fsmp, sizeof dl->fsmp);
776 dl->fsmp.object = dl;
733 cbcp_Init(&dl->cbcp, dl->physical);
734 chat_Init(&dl->chat, dl->physical, NULL, 1, NULL);
735
736 log_Printf(LogPHASE, "%s: Created in %s state\n",
737 dl->name, datalink_State(dl));
738
739 return dl;
740}

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

767 memset(&dl->dial_timer, '\0', sizeof dl->dial_timer);
768 dl->dial_tries = 0;
769 dl->reconnect_tries = 0;
770 dl->name = strdup(name);
771 peerid_Init(&dl->peer);
772 dl->parent = odl->parent;
773 memcpy(&dl->fsmp, &odl->fsmp, sizeof dl->fsmp);
774 dl->fsmp.object = dl;
777 auth_Init(&dl->pap);
778 dl->pap.cfg.fsmretry = odl->pap.cfg.fsmretry;
779
775
780 auth_Init(&dl->chap.auth);
781 dl->chap.auth.cfg.fsmretry = odl->chap.auth.cfg.fsmretry;
782
783 if ((dl->physical = modem_Create(dl, PHYS_INTERACTIVE)) == NULL) {
784 free(dl->name);
785 free(dl);
786 return NULL;
787 }
776 if ((dl->physical = modem_Create(dl, PHYS_INTERACTIVE)) == NULL) {
777 free(dl->name);
778 free(dl);
779 return NULL;
780 }
781 pap_Init(&dl->pap, dl->physical);
782 dl->pap.cfg.fsmretry = odl->pap.cfg.fsmretry;
783
784 chap_Init(&dl->chap, dl->physical);
785 dl->chap.auth.cfg.fsmretry = odl->chap.auth.cfg.fsmretry;
786
788 memcpy(&dl->physical->cfg, &odl->physical->cfg, sizeof dl->physical->cfg);
789 memcpy(&dl->physical->link.lcp.cfg, &odl->physical->link.lcp.cfg,
790 sizeof dl->physical->link.lcp.cfg);
791 memcpy(&dl->physical->link.ccp.cfg, &odl->physical->link.ccp.cfg,
792 sizeof dl->physical->link.ccp.cfg);
793 memcpy(&dl->physical->async.cfg, &odl->physical->async.cfg,
794 sizeof dl->physical->async.cfg);
795

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

1175 dl->reconnect_tries = 0;
1176 dl->parent = &bundle->fsm;
1177 dl->fsmp.LayerStart = datalink_LayerStart;
1178 dl->fsmp.LayerUp = datalink_LayerUp;
1179 dl->fsmp.LayerDown = datalink_LayerDown;
1180 dl->fsmp.LayerFinish = datalink_LayerFinish;
1181 dl->fsmp.object = dl;
1182
787 memcpy(&dl->physical->cfg, &odl->physical->cfg, sizeof dl->physical->cfg);
788 memcpy(&dl->physical->link.lcp.cfg, &odl->physical->link.lcp.cfg,
789 sizeof dl->physical->link.lcp.cfg);
790 memcpy(&dl->physical->link.ccp.cfg, &odl->physical->link.ccp.cfg,
791 sizeof dl->physical->link.ccp.cfg);
792 memcpy(&dl->physical->async.cfg, &odl->physical->async.cfg,
793 sizeof dl->physical->async.cfg);
794

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

1174 dl->reconnect_tries = 0;
1175 dl->parent = &bundle->fsm;
1176 dl->fsmp.LayerStart = datalink_LayerStart;
1177 dl->fsmp.LayerUp = datalink_LayerUp;
1178 dl->fsmp.LayerDown = datalink_LayerDown;
1179 dl->fsmp.LayerFinish = datalink_LayerFinish;
1180 dl->fsmp.object = dl;
1181
1183 retry = dl->pap.cfg.fsmretry;
1184 auth_Init(&dl->pap);
1185 dl->pap.cfg.fsmretry = retry;
1186
1187 retry = dl->chap.auth.cfg.fsmretry;
1188 auth_Init(&dl->chap.auth);
1189 dl->chap.auth.cfg.fsmretry = retry;
1190
1191 dl->physical = iov2modem(dl, iov, niov, maxiov, fd);
1192
1193 if (!dl->physical) {
1194 free(dl->name);
1195 free(dl);
1196 dl = NULL;
1197 } else {
1182 dl->physical = iov2modem(dl, iov, niov, maxiov, fd);
1183
1184 if (!dl->physical) {
1185 free(dl->name);
1186 free(dl);
1187 dl = NULL;
1188 } else {
1189 retry = dl->pap.cfg.fsmretry;
1190 pap_Init(&dl->pap, dl->physical);
1191 dl->pap.cfg.fsmretry = retry;
1192
1193 retry = dl->chap.auth.cfg.fsmretry;
1194 chap_Init(&dl->chap, dl->physical);
1195 dl->chap.auth.cfg.fsmretry = retry;
1196
1198 cbcp_Init(&dl->cbcp, dl->physical);
1199 chat_Init(&dl->chat, dl->physical, NULL, 1, NULL);
1200
1201 log_Printf(LogPHASE, "%s: Transferred in %s state\n",
1202 dl->name, datalink_State(dl));
1203 }
1204
1205 return dl;

--- 81 unchanged lines hidden ---
1197 cbcp_Init(&dl->cbcp, dl->physical);
1198 chat_Init(&dl->chat, dl->physical, NULL, 1, NULL);
1199
1200 log_Printf(LogPHASE, "%s: Transferred in %s state\n",
1201 dl->name, datalink_State(dl));
1202 }
1203
1204 return dl;

--- 81 unchanged lines hidden ---