diff options
-rw-r--r-- | gatchat/gatppp.c | 26 | ||||
-rw-r--r-- | gatchat/ppp.h | 4 | ||||
-rw-r--r-- | gatchat/ppp_ipcp.c | 3 |
3 files changed, 17 insertions, 16 deletions
diff --git a/gatchat/gatppp.c b/gatchat/gatppp.c index b7c4cd38..c49223ff 100644 --- a/gatchat/gatppp.c +++ b/gatchat/gatppp.c @@ -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; diff --git a/gatchat/ppp.h b/gatchat/ppp.h index 9373242b..f3b325e2 100644 --- a/gatchat/ppp.h +++ b/gatchat/ppp.h @@ -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); diff --git a/gatchat/ppp_ipcp.c b/gatchat/ppp_ipcp.c index f695079e..1eebd21f 100644 --- a/gatchat/ppp_ipcp.c +++ b/gatchat/ppp_ipcp.c @@ -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); } |