uint32_t PPP_open ( _ppp_handle handle, /* [IN] - the PPP state structure */ uint32_t options /* [IN] - Startup options */ ) { /* Body */ #if RTCSCFG_ENABLE_IP4 PPP_CFG_PTR ppp_ptr = handle; /* Do some error checking */ if (ppp_ptr->VALID != PPP_VALID) { return RTCSERR_PPP_INVALID_HANDLE; } /* Endif */ PPPFSM_open(&ppp_ptr->LCP_FSM, options); return PPP_OK; #else return RTCSERR_IP_IS_DISABLED; #endif /* RTCSCFG_ENABLE_IP4 */ } /* Endbody */
void IPCP_bind ( TCPIP_PARM_IPCP _PTR_ parms ) { /* Body */ IP_IF_PTR if_ptr = parms->handle; IPCP_CFG_STRUCT_PTR ipcp_ptr = if_ptr->HANDLE; _ppp_handle handle = ipcp_ptr->HANDLE; uint_32 error; ipcp_ptr->CALLUP = IPCP_lowerup; ipcp_ptr->PARAMUP = &ipcp_ptr->FSM; ipcp_ptr->CALLDOWN = IPCP_lowerdown; ipcp_ptr->PARAMDOWN = &ipcp_ptr->FSM; error = PPP_setcall(handle, PPP_CALL_LINK_UP, &ipcp_ptr->CALLUP, &ipcp_ptr->PARAMUP); if (!error) { error = PPP_setcall(handle, PPP_CALL_LINK_DOWN, &ipcp_ptr->CALLDOWN, &ipcp_ptr->PARAMDOWN); if (error) { PPP_setcall(handle, PPP_CALL_LINK_UP, &ipcp_ptr->CALLUP, &ipcp_ptr->PARAMUP); } /* Endif */ } /* Endif */ if (!error) { ipcp_ptr->IP_UP = parms->data->IP_UP; ipcp_ptr->IP_DOWN = parms->data->IP_DOWN; ipcp_ptr->IP_PARAM = parms->data->IP_PARAM; ipcp_ptr->INIT.ACCEPT_LOCAL_ADDR = parms->data->ACCEPT_LOCAL_ADDR; ipcp_ptr->INIT.LOCAL_ADDR = parms->data->LOCAL_ADDR; ipcp_ptr->INIT.ACCEPT_REMOTE_ADDR = parms->data->ACCEPT_REMOTE_ADDR; ipcp_ptr->INIT.REMOTE_ADDR = parms->data->REMOTE_ADDR; ipcp_ptr->INIT.DEFAULT_NETMASK = parms->data->DEFAULT_NETMASK; ipcp_ptr->INIT.NETMASK = parms->data->NETMASK; ipcp_ptr->INIT.DEFAULT_ROUTE = parms->data->DEFAULT_ROUTE; ipcp_ptr->INIT.NEG_LOCAL_DNS = parms->data->NEG_LOCAL_DNS; ipcp_ptr->INIT.ACCEPT_LOCAL_DNS = parms->data->ACCEPT_LOCAL_DNS; ipcp_ptr->INIT.LOCAL_DNS = parms->data->LOCAL_DNS; ipcp_ptr->INIT.NEG_REMOTE_DNS = parms->data->NEG_REMOTE_DNS; ipcp_ptr->INIT.ACCEPT_REMOTE_DNS = parms->data->ACCEPT_REMOTE_DNS; ipcp_ptr->INIT.REMOTE_DNS = parms->data->REMOTE_DNS; /* Start IPCP */ PPPFSM_open(&ipcp_ptr->FSM, 0); /* Open the link */ error = PPP_open(handle, 0); } /* Endif */ RTCSCMD_complete(parms, PPP_TO_RTCS_ERROR(error)); } /* Endbody */