ppp: transition to dead when read io destroyed

Kristen Carlson Accardi kristen at linux.intel.com
Thu Apr 29 11:03:09 PDT 2010


remove call to signal_close for lcp object, it is redundent.  If
our io is destroyed we are dead, so transition the ppp phase to
DEAD so our disconnect callback can be called.
---
 gatchat/gatppp.c |    2 +-
 gatchat/ppp_cp.c |    2 ++
 2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/gatchat/gatppp.c b/gatchat/gatppp.c
index dfdaf40..3450ce3 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 9db96d6..00acb73 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);
 }
 
 /*
-- 
1.6.6.1



More information about the ofono mailing list