diff --git a/gatchat/gatppp.c b/gatchat/gatppp.c index c49223ff..dc26f29c 100644 --- a/gatchat/gatppp.c +++ b/gatchat/gatppp.c @@ -418,6 +418,11 @@ void ppp_net_up_notify(GAtPPP *ppp, const char *ip, ip, dns1, dns2, ppp->connect_data); } +void ppp_net_down_notify(GAtPPP *ppp) +{ + ppp_net_close(ppp->net); +} + void ppp_set_recv_accm(GAtPPP *ppp, guint32 accm) { ppp->recv_accm = accm; diff --git a/gatchat/ppp.h b/gatchat/ppp.h index f3b325e2..867dcc7a 100644 --- a/gatchat/ppp.h +++ b/gatchat/ppp.h @@ -81,6 +81,7 @@ 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_net_down_notify(GAtPPP *ppp); 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); diff --git a/gatchat/ppp_ipcp.c b/gatchat/ppp_ipcp.c index 1eebd21f..7402f9a9 100644 --- a/gatchat/ppp_ipcp.c +++ b/gatchat/ppp_ipcp.c @@ -146,6 +146,7 @@ static void ipcp_down(struct pppcp_data *pppcp) ipcp_reset_config_options(ipcp); pppcp_set_local_options(pppcp, ipcp->options, ipcp->options_len); + ppp_net_down_notify(pppcp_get_ppp(pppcp)); } static void ipcp_finished(struct pppcp_data *pppcp)