mirror of git://git.sysmocom.de/ofono
ppp: Introduce ppp_net_up_notify and use it
This is slightly cleaner way than defining a weird callback function.
This commit is contained in:
parent
6525826455
commit
d1d73a75fc
|
@ -85,16 +85,6 @@ void ppp_debug(GAtPPP *ppp, const char *str)
|
|||
ppp->debugf(str, ppp->debug_data);
|
||||
}
|
||||
|
||||
void ppp_connect_cb(GAtPPP *ppp, GAtPPPConnectStatus success,
|
||||
const char *ip, const char *dns1, const char *dns2)
|
||||
{
|
||||
if (ppp->connect_cb == NULL)
|
||||
return;
|
||||
|
||||
ppp->connect_cb(success, ppp_net_get_interface(ppp->net),
|
||||
ip, dns1, dns2, ppp->connect_data);
|
||||
}
|
||||
|
||||
#define PPPINITFCS16 0xffff /* Initial FCS value */
|
||||
#define PPPGOODFCS16 0xf0b8 /* Good final FCS value */
|
||||
|
||||
|
@ -373,8 +363,6 @@ void ppp_enter_phase(GAtPPP *ppp, enum ppp_phase phase)
|
|||
/* Send UP & OPEN events to the IPCP layer */
|
||||
pppcp_signal_open(ppp->ipcp);
|
||||
pppcp_signal_up(ppp->ipcp);
|
||||
/* bring network phase up */
|
||||
ppp_net_open(ppp->net);
|
||||
break;
|
||||
case PPP_PHASE_TERMINATION:
|
||||
pppcp_signal_close(ppp->lcp);
|
||||
|
@ -416,6 +404,20 @@ void ppp_auth_notify(GAtPPP *ppp, gboolean success)
|
|||
ppp_enter_phase(ppp, PPP_PHASE_TERMINATION);
|
||||
}
|
||||
|
||||
void ppp_net_up_notify(GAtPPP *ppp, const char *ip,
|
||||
const char *dns1, const char *dns2)
|
||||
{
|
||||
/* bring network phase up */
|
||||
ppp_net_open(ppp->net);
|
||||
|
||||
if (ppp->connect_cb == NULL)
|
||||
return;
|
||||
|
||||
ppp->connect_cb(G_AT_PPP_CONNECT_SUCCESS,
|
||||
ppp_net_get_interface(ppp->net),
|
||||
ip, dns1, dns2, ppp->connect_data);
|
||||
}
|
||||
|
||||
void ppp_set_recv_accm(GAtPPP *ppp, guint32 accm)
|
||||
{
|
||||
ppp->recv_accm = accm;
|
||||
|
|
|
@ -79,6 +79,8 @@ void ppp_enter_phase(GAtPPP *ppp, enum ppp_phase phase);
|
|||
void ppp_transmit(GAtPPP *ppp, guint8 *packet, guint infolen);
|
||||
void ppp_set_auth(GAtPPP *ppp, const guint8 *auth_data);
|
||||
void ppp_auth_notify(GAtPPP *ppp, gboolean success);
|
||||
void ppp_net_up_notify(GAtPPP *ppp, const char *ip,
|
||||
const char *dns1, const char *dns2);
|
||||
void ppp_set_recv_accm(GAtPPP *ppp, guint32 accm);
|
||||
void ppp_set_xmit_accm(GAtPPP *ppp, guint32 accm);
|
||||
void ppp_set_pfc(GAtPPP *ppp, gboolean pfc);
|
||||
|
@ -90,8 +92,6 @@ void lcp_free(struct pppcp_data *lcp);
|
|||
void lcp_protocol_reject(struct pppcp_data *lcp, guint8 *packet, gsize len);
|
||||
struct pppcp_data *ipcp_new(GAtPPP *ppp);
|
||||
void ipcp_free(struct pppcp_data *data);
|
||||
void ppp_connect_cb(GAtPPP *ppp, GAtPPPConnectStatus success,
|
||||
const char *ip, const char *dns1, const char *dns2);
|
||||
|
||||
/* CHAP related functions */
|
||||
struct ppp_chap *ppp_chap_new(GAtPPP *ppp, guint8 method);
|
||||
|
|
|
@ -135,8 +135,7 @@ static void ipcp_up(struct pppcp_data *pppcp)
|
|||
addr.s_addr = ipcp->dns2;
|
||||
inet_ntop(AF_INET, &addr, dns2, INET_ADDRSTRLEN);
|
||||
|
||||
ppp_connect_cb(pppcp_get_ppp(pppcp), G_AT_PPP_CONNECT_SUCCESS,
|
||||
ip[0] ? ip : NULL,
|
||||
ppp_net_up_notify(pppcp_get_ppp(pppcp), ip[0] ? ip : NULL,
|
||||
dns1[0] ? dns1 : NULL,
|
||||
dns2[0] ? dns2 : NULL);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue