Hi Kristen, > change the state to DEAD when lcp finishes. This prevents us from > calling our disconnect function again if we are already dead. I'm curious under what circumstances tlf gets called on LCP when we're already down? > --- > gatchat/gatppp.c | 7 ++++--- > 1 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/gatchat/gatppp.c b/gatchat/gatppp.c > index 70669b0..dd6d84d 100644 > --- a/gatchat/gatppp.c > +++ b/gatchat/gatppp.c > @@ -186,9 +186,6 @@ static inline void ppp_enter_phase(GAtPPP *ppp, enum > ppp_phase phase) { > g_print("Entering new phase: %d\n", phase); > ppp->phase = phase; > - > - if (phase == PPP_PHASE_DEAD) > - ppp_dead(ppp); > } > > void ppp_set_auth(GAtPPP *ppp, const guint8* auth_data) > @@ -290,6 +287,10 @@ void ppp_lcp_down_notify(GAtPPP *ppp) > > void ppp_lcp_finished_notify(GAtPPP *ppp) > { > + if (ppp->phase == PPP_PHASE_DEAD) > + return; I prefer we move this to ppp_enter_phase > + > + ppp_enter_phase(ppp, PPP_PHASE_DEAD); Keep this > ppp_dead(ppp); And remove this. Regards, -Denis