static void datalink_LayerUp(void *v, struct fsm *fp) { /* The given fsm is now up */ struct datalink *dl = (struct datalink *)v; struct lcp *lcp = &dl->physical->link.lcp; if (fp->proto == PROTO_LCP) { datalink_GotAuthname(dl, ""); lcp->auth_ineed = lcp->want_auth; lcp->auth_iwait = lcp->his_auth; if (lcp->his_auth || lcp->want_auth) { if (bundle_Phase(dl->bundle) != PHASE_NETWORK) bundle_NewPhase(dl->bundle, PHASE_AUTHENTICATE); log_Printf(LogPHASE, "%s: his = %s, mine = %s\n", dl->name, Auth2Nam(lcp->his_auth, lcp->his_authtype), Auth2Nam(lcp->want_auth, lcp->want_authtype)); if (lcp->his_auth == PROTO_PAP) auth_StartReq(&dl->pap); if (lcp->want_auth == PROTO_CHAP) auth_StartReq(&dl->chap.auth); } else datalink_AuthOk(dl); } else if (fp->proto == PROTO_CCP) (*dl->parent->LayerUp)(dl->parent->object, &dl->physical->link.ccp.fsm); }
static void chap_Success_old(struct authinfo *authp) { datalink_GotAuthname(authp->physical->dl, authp->in.name); ChapOutput(authp->physical, CHAP_SUCCESS, authp->id, "Welcome!!", 10, NULL); authp->physical->link.lcp.auth_ineed = 0; if (Enabled(authp->physical->dl->bundle, OPT_UTMP)) physical_Login(authp->physical, authp->in.name); if (authp->physical->link.lcp.auth_iwait == 0) /* * Either I didn't need to authenticate, or I've already been * told that I got the answer right. */ datalink_AuthOk(authp->physical->dl); }
void pap_Success(struct link *l) { #if 0/*fanzhibin f49086 delete it*/ struct bundle *bundle = authp->physical->dl->bundle; datalink_GotAuthname(authp->physical->dl, authp->in.name); #ifndef NORADIUS if (*bundle->radius.cfg.file && bundle->radius.repstr) SendPapCode(authp, PAP_ACK, bundle->radius.repstr); else #endif #endif SendPapCode(l, PAP_ACK, "Greetings!!"); #if 0/*fanzhibin f49086 delete it*/ /*下面这句在改造的时候要添进去*/ authp->physical->link.lcp.auth_ineed = 0; if (Enabled(bundle, OPT_UTMP)) physical_Login(authp->physical, authp->in.name); /*下面这句在改造的时候要添进去*/ if (authp->physical->link.lcp.auth_iwait == 0) /* * Either I didn't need to authenticate, or I've already been * told that I got the answer right. */ datalink_AuthOk(authp->physical->dl); #endif /*fanzhibin f49086 add it begin*/ l->lcp.auth_ineed = 0; if(l->lcp.auth_iwait == 0) /* auth_iwait: 0, authentication to peer is not complete or no need to authentication, !0, authentication to peer is complete */ { if (PHASE_AUTHENTICATE == l->phase) { l->phase = PHASE_NETWORK; l->ipcp.fsm.state = ST_CLOSED; fsm_Open(&(l->ipcp.fsm)); PPP_MNTN_LOG(PS_PID_APP_PPP, 0, PS_PRINT_NORMAL, "goto ipcp stage!\r\n"); } } /*fanzhibin f49086 add it end*/ }
static void chap_Success(struct authinfo *authp) { struct bundle *bundle = authp->physical->dl->bundle; const char *msg; datalink_GotAuthname(authp->physical->dl, authp->in.name); #ifndef NODES if (authp->physical->link.lcp.want_authtype == 0x81) { #ifndef NORADIUS if (*bundle->radius.cfg.file && bundle->radius.msrepstr) msg = bundle->radius.msrepstr; else #endif msg = auth2chap(authp)->authresponse; MPPE_MasterKeyValid = 1; /* XXX Global ! */ } else #endif #ifndef NORADIUS if (*bundle->radius.cfg.file && bundle->radius.repstr) msg = bundle->radius.repstr; else #endif msg = "Welcome!!"; ChapOutput(authp->physical, CHAP_SUCCESS, authp->id, msg, strlen(msg), NULL); authp->physical->link.lcp.auth_ineed = 0; if (Enabled(bundle, OPT_UTMP)) physical_Login(authp->physical, authp->in.name); if (authp->physical->link.lcp.auth_iwait == 0) /* * Either I didn't need to authenticate, or I've already been * told that I got the answer right. */ datalink_AuthOk(authp->physical->dl); }
static void pap_Success(struct authinfo *authp) { struct bundle *bundle = authp->physical->dl->bundle; datalink_GotAuthname(authp->physical->dl, authp->in.name); #ifndef NORADIUS if (*bundle->radius.cfg.file && bundle->radius.repstr) SendPapCode(authp, PAP_ACK, bundle->radius.repstr); else #endif SendPapCode(authp, PAP_ACK, "Greetings!!"); authp->physical->link.lcp.auth_ineed = 0; if (Enabled(bundle, OPT_UTMP)) physical_Login(authp->physical, authp->in.name); if (authp->physical->link.lcp.auth_iwait == 0) /* * Either I didn't need to authenticate, or I've already been * told that I got the answer right. */ datalink_AuthOk(authp->physical->dl); }