diff options
-rw-r--r-- | gatchat/gatppp.c | 2 | ||||
-rw-r--r-- | gatchat/ppp_cp.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/gatchat/gatppp.c b/gatchat/gatppp.c index dfdaf40c..3450ce3e 100644 --- a/gatchat/gatppp.c +++ b/gatchat/gatppp.c @@ -180,7 +180,6 @@ void ppp_enter_phase(GAtPPP *ppp, enum ppp_phase phase) case PPP_PHASE_TERMINATION: pppcp_signal_down(ppp->ipcp); pppcp_signal_close(ppp->ipcp); - pppcp_signal_close(ppp->lcp); break; case PPP_PHASE_DEAD: ppp_dead(ppp); @@ -269,6 +268,7 @@ static void io_disconnect(gpointer user_data) GAtPPP *ppp = user_data; pppcp_signal_down(ppp->lcp); + ppp_enter_phase(ppp, PPP_PHASE_DEAD); } /* Administrative Open */ diff --git a/gatchat/ppp_cp.c b/gatchat/ppp_cp.c index 9db96d67..00acb73b 100644 --- a/gatchat/ppp_cp.c +++ b/gatchat/ppp_cp.c @@ -523,6 +523,7 @@ static void pppcp_send_terminate_ack(struct pppcp_data *data, { struct pppcp_packet *packet; struct pppcp_packet *pppcp_header = (struct pppcp_packet *) request; + struct pppcp_timer_data *timer_data = &data->terminate_timer_data; pppcp_trace(data); @@ -535,6 +536,7 @@ static void pppcp_send_terminate_ack(struct pppcp_data *data, ntohs(pppcp_header->length)); pppcp_packet_free(packet); + pppcp_start_timer(timer_data); } /* |