summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gatchat/gatppp.c2
-rw-r--r--gatchat/ppp_cp.c2
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);
}
/*