Hi Guillaume, On 03/25/2011 10:25 AM, Guillaume Zajac wrote: > --- > gatchat/gatppp.c | 8 ++++++++ > 1 files changed, 8 insertions(+), 0 deletions(-) > > diff --git a/gatchat/gatppp.c b/gatchat/gatppp.c > index 993b5ea..9df6b8e 100644 > --- a/gatchat/gatppp.c > +++ b/gatchat/gatppp.c > @@ -467,6 +467,14 @@ void g_at_ppp_set_debug(GAtPPP *ppp, GAtDebugFunc func, gpointer user_data) > ppp->debug_data = user_data; > } > > +void g_at_ppp_set_suspend_function(GAtPPP *ppp, GAtSuspendFunc func, gpointer user_data) > +{ > + if (ppp == NULL) > + return; > + > + g_at_hdlc_set_suspend_function(ppp->hdlc, func, user_data); > +} > + This is really not enough, you must also shut down the read watch on the TUN device, so that we don't try to forward packets from TUN to HDLC while we're suspended. > void g_at_ppp_shutdown(GAtPPP *ppp) > { > if (ppp->phase == PPP_PHASE_DEAD || ppp->phase == PPP_PHASE_TERMINATION) Regards, -Denis