Lines Matching defs:pcb

239 static void network_phase(ppp_pcb *pcb);
548 void link_required(ppp_pcb *pcb) {
549 LWIP_UNUSED_ARG(pcb);
559 ppp_pcb *pcb = &ppp_pcb_list[unit];
563 new_phase(pcb, PPP_PHASE_SERIALCONN);
599 new_phase(pcb, PPP_PHASE_ESTABLISH);
601 lcp_lowerup(pcb);
605 new_phase(pcb, PPP_PHASE_DISCONNECT);
610 new_phase(pcb, PPP_PHASE_DEAD);
620 void link_terminated(ppp_pcb *pcb) {
621 if (pcb->phase == PPP_PHASE_DEAD
623 || pcb->phase == PPP_PHASE_MASTER
627 new_phase(pcb, PPP_PHASE_DISCONNECT);
644 lcp_lowerdown(pcb);
646 ppp_link_terminated(pcb);
670 lcp_lowerdown(pcb);
687 new_phase(pcb, PPP_PHASE_MASTER);
691 new_phase(pcb, PPP_PHASE_DEAD);
698 void link_down(ppp_pcb *pcb) {
704 upper_layers_down(pcb);
705 if (pcb->phase != PPP_PHASE_DEAD
707 && pcb->phase != PPP_PHASE_MASTER
710 new_phase(pcb, PPP_PHASE_ESTABLISH);
716 void upper_layers_down(ppp_pcb *pcb) {
722 (*protp->lowerdown)(pcb);
724 (*protp->close)(pcb, "LCP down");
726 pcb->num_np_open = 0;
727 pcb->num_np_up = 0;
734 void link_established(ppp_pcb *pcb) {
739 lcp_options *wo = &pcb->lcp_wantoptions;
741 lcp_options *go = &pcb->lcp_gotoptions;
743 lcp_options *ho = &pcb->lcp_hisoptions;
755 (*protp->lowerup)(pcb);
765 if (pcb->settings.auth_required && !(0
789 if (!pcb->settings.null_login
798 pcb->err_code = PPPERR_AUTHFAIL;
799 lcp_close(pcb, "peer refused to authenticate");
805 new_phase(pcb, PPP_PHASE_AUTHENTICATE);
810 eap_authpeer(pcb, PPP_OUR_NAME);
816 chap_auth_peer(pcb, PPP_OUR_NAME, CHAP_DIGEST(go->chap_mdtype));
822 upap_authpeer(pcb);
831 eap_authwithpeer(pcb, pcb->settings.user);
837 chap_auth_with_peer(pcb, pcb->settings.user, CHAP_DIGEST(ho->chap_mdtype));
843 upap_authwithpeer(pcb, pcb->settings.user, pcb->settings.passwd);
849 pcb->auth_pending = auth;
850 pcb->auth_done = 0;
854 network_phase(pcb);
860 static void network_phase(ppp_pcb *pcb) {
862 ppp_pcb *pcb = &ppp_pcb_list[unit];
898 new_phase(pcb, PPP_PHASE_CALLBACK);
899 (*cbcp_protent.open)(pcb);
914 start_networks(pcb);
917 void start_networks(ppp_pcb *pcb) {
923 new_phase(pcb, PPP_PHASE_NETWORK);
954 (*protp->open)(pcb);
965 && !pcb->ccp_gotoptions.mppe
968 continue_networks(pcb);
971 void continue_networks(ppp_pcb *pcb) {
987 (*protp->open)(pcb);
988 ++pcb->num_np_open;
991 if (pcb->num_np_open == 0)
993 lcp_close(pcb, "No network protocols running");
1006 int auth_check_passwd(ppp_pcb *pcb, char *auser, int userlen, char *apasswd, int passwdlen, const char **msg, int *msglen) {
1010 if (pcb->settings.user && pcb->settings.passwd) {
1011 secretuserlen = (int)strlen(pcb->settings.user);
1012 secretpasswdlen = (int)strlen(pcb->settings.passwd);
1015 && !memcmp(auser, pcb->settings.user, userlen)
1016 && !memcmp(apasswd, pcb->settings.passwd, passwdlen) ) {
1031 void auth_peer_fail(ppp_pcb *pcb, int protocol) {
1039 pcb->err_code = PPPERR_AUTHFAIL;
1040 lcp_close(pcb, "Authentication failed");
1046 void auth_peer_success(ppp_pcb *pcb, int protocol, int prot_flavor, const char *name, int namelen) {
1093 if (namelen > (int)sizeof(pcb->peer_authname) - 1)
1094 namelen = (int)sizeof(pcb->peer_authname) - 1;
1095 MEMCPY(pcb->peer_authname, name, namelen);
1096 pcb->peer_authname[namelen] = 0;
1103 pcb->auth_done |= bit;
1109 if ((pcb->auth_pending &= ~bit) == 0)
1110 network_phase(pcb);
1117 void auth_withpeer_fail(ppp_pcb *pcb, int protocol) {
1129 pcb->err_code = PPPERR_AUTHFAIL;
1130 lcp_close(pcb, "Failed to authenticate ourselves to peer");
1136 void auth_withpeer_success(ppp_pcb *pcb, int protocol, int prot_flavor) {
1183 pcb->auth_done |= bit;
1189 if ((pcb->auth_pending &= ~bit) == 0)
1190 network_phase(pcb);
1198 void np_up(ppp_pcb *pcb, int proto) {
1204 if (pcb->num_np_up == 0) {
1208 new_phase(pcb, PPP_PHASE_RUNNING);
1216 tlim = pcb->settings.idle_time_limit;
1218 TIMEOUT(check_idle, (void*)pcb, tlim);
1226 if (pcb->settings.maxconnect > 0)
1227 TIMEOUT(connect_time_expired, (void*)pcb, pcb->settings.maxconnect);
1243 ++pcb->num_np_up;
1249 void np_down(ppp_pcb *pcb, int proto) {
1251 if (--pcb->num_np_up == 0) {
1253 UNTIMEOUT(check_idle, (void*)pcb);
1261 new_phase(pcb, PPP_PHASE_NETWORK);
1268 void np_finished(ppp_pcb *pcb, int proto) {
1270 if (--pcb->num_np_open <= 0) {
1272 lcp_close(pcb, "No network protocols running");
1305 lcp_close(pcb, "Traffic limit");
1322 ppp_pcb *pcb = (ppp_pcb*)arg;
1327 if (!get_idle_time(pcb, &idle))
1335 tlim = pcb->settings.idle_time_limit - itime;
1342 pcb->err_code = PPPERR_IDLETIMEOUT;
1343 lcp_close(pcb, "Link inactive");
1348 TIMEOUT(check_idle, (void*)pcb, tlim);
1358 ppp_pcb *pcb = (ppp_pcb*)arg;
1360 pcb->err_code = PPPERR_CONNECTTIME;
1361 lcp_close(pcb, "Connect time expired"); /* Close connection */
1657 lcp_close(pcb, "login failed");
1904 int get_secret(ppp_pcb *pcb, const char *client, const char *server, char *secret, int *secret_len, int am_server) {
1909 if (!client || !client[0] || !pcb->settings.user || !pcb->settings.passwd || strcmp(client, pcb->settings.user)) {
1913 len = (int)strlen(pcb->settings.passwd);
1919 MEMCPY(secret, pcb->settings.passwd, len);