/** * Call ppp_set_default() inside the tcpip_thread context. */ static err_t pppapi_do_ppp_set_default(struct tcpip_api_call_data *m) { /* cast through void* to silence alignment warnings. * We know it works because the structs have been instantiated as struct pppapi_msg */ struct pppapi_msg *msg = (struct pppapi_msg *)(void*)m; ppp_set_default(msg->msg.ppp); return ERR_OK; }
/** * PPP callback */ static void gprs_callback(ppp_pcb *pcb,int err_code,void *ctx) { gprs_t * gprs = (gprs_t *)ctx; (void)pcb; if (err_code) { LWIP_DEBUGF(GPRS_DEBUG,("gprs: Callback: disconnected (%d)\n",err_code)); switch (err_code) { case PPPERR_USER: gprs_set_state(gprs, GPRS_STATE_DISCONNECTED); break; default: gprs_do_start(gprs); break; } } else { // UNTIMEOUT(); LWIP_DEBUGF(GPRS_DEBUG,("gprs: gprs_callback: connected\n")); //LWIP_DEBUGF(GPRS_DEBUG,("IP %s\n",ip_ntoa(&gprs->pcb->addrs.our_ipaddr))); //LWIP_DEBUGF(GPRS_DEBUG,("MASK %s\n",ip_ntoa(&gprs->pcb->addrs.netmask))); //LWIP_DEBUGF(GPRS_DEBUG,("DNS1 %s\n",ip_ntoa(&gprs->pcb->addrs.dns1))); //LWIP_DEBUGF(GPRS_DEBUG,("DNS2 %s\n",ip_ntoa(&gprs->pcb->addrs.dns2))); gprs_set_state(gprs, GPRS_STATE_CONNECTED); ppp_set_default(gprs->pcb); /* * Update DNS if configured */ #if LWIP_DNS //dns_setserver(0,&gprs->pcb->addrs.dns1); //dns_setserver(1,&gprs->pcb->addrs.dns2); #endif } }
/** * Call ppp_set_default() inside the tcpip_thread context. */ static void pppapi_do_ppp_set_default(struct pppapi_msg_msg *msg) { ppp_set_default(msg->ppp); TCPIP_PPPAPI_ACK(msg); }