summaryrefslogtreecommitdiffstats
path: root/gatchat/gatppp.c
diff options
context:
space:
mode:
Diffstat (limited to 'gatchat/gatppp.c')
-rw-r--r--gatchat/gatppp.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gatchat/gatppp.c b/gatchat/gatppp.c
index 8bd50bce..461b54d9 100644
--- a/gatchat/gatppp.c
+++ b/gatchat/gatppp.c
@@ -264,6 +264,13 @@ void ppp_set_mtu(GAtPPP *ppp, const guint8 *data)
ppp->mtu = mtu;
}
+static void io_disconnect(gpointer user_data)
+{
+ GAtPPP *ppp = user_data;
+
+ pppcp_signal_down(ppp->lcp);
+}
+
/* Administrative Open */
void g_at_ppp_open(GAtPPP *ppp)
{
@@ -397,6 +404,8 @@ GAtPPP *g_at_ppp_new(GIOChannel *modem)
ppp->ipcp = ipcp_new(ppp);
g_at_hdlc_set_receive(ppp->hdlc, ppp_receive, ppp);
+ g_at_io_set_disconnect_function(g_at_hdlc_get_io(ppp->hdlc),
+ io_disconnect, ppp);
return ppp;
}