diff options
author | Kristen Carlson Accardi <kristen@linux.intel.com> | 2010-04-02 10:28:18 -0700 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-04-02 12:53:45 -0500 |
commit | c2a589e7327e147146e13682babb2f9493d04476 (patch) | |
tree | 7fa3682e2d7b38e574ba1edda1b7e19491b8d0f4 | |
parent | 398acbc97696a2669238c4ecb34ec7651bd77527 (diff) | |
download | ofono-c2a589e7327e147146e13682babb2f9493d04476.tar.bz2 |
ppp: fix event generation on close
Prevents too early transition to PPP_DEAD
-rw-r--r-- | gatchat/gatppp.c | 4 | ||||
-rw-r--r-- | gatchat/ppp.h | 1 | ||||
-rw-r--r-- | gatchat/ppp_lcp.c | 17 |
3 files changed, 5 insertions, 17 deletions
diff --git a/gatchat/gatppp.c b/gatchat/gatppp.c index 2b853f06..6d4950d9 100644 --- a/gatchat/gatppp.c +++ b/gatchat/gatppp.c @@ -419,7 +419,6 @@ static void ppp_transition_phase(GAtPPP *ppp, enum ppp_phase phase) /* otherwise we need to wait for the peer to send us a challenge */ break; case PPP_TERMINATION: - /* signal DOWN event to LCP */ lcp_terminate(ppp->lcp); break; case PPP_DEAD: @@ -570,8 +569,7 @@ void g_at_ppp_set_recording(GAtPPP *ppp, const char *filename) void g_at_ppp_shutdown(GAtPPP *ppp) { - /* send a CLOSE event to the lcp layer */ - lcp_close(ppp->lcp); + ppp_generate_event(ppp, PPP_CLOSING); } void g_at_ppp_ref(GAtPPP *ppp) diff --git a/gatchat/ppp.h b/gatchat/ppp.h index ba17f41c..8feb2bf7 100644 --- a/gatchat/ppp.h +++ b/gatchat/ppp.h @@ -153,7 +153,6 @@ gboolean ppp_get_acfc(GAtPPP *ppp); struct pppcp_data * lcp_new(GAtPPP *ppp); void lcp_free(struct pppcp_data *lcp); void lcp_open(struct pppcp_data *data); -void lcp_close(struct pppcp_data *data); void lcp_establish(struct pppcp_data *data); void lcp_terminate(struct pppcp_data *data); void lcp_protocol_reject(struct pppcp_data *lcp, guint8 *packet, gsize len); diff --git a/gatchat/ppp_lcp.c b/gatchat/ppp_lcp.c index 1fcb40ea..e09ed6b4 100644 --- a/gatchat/ppp_lcp.c +++ b/gatchat/ppp_lcp.c @@ -71,7 +71,7 @@ static void lcp_up(struct pppcp_data *pppcp) */ static void lcp_down(struct pppcp_data *pppcp) { - ppp_generate_event(pppcp->ppp, PPP_DOWN); + /* XXX should implement a way to signal NCP */ } /* @@ -89,7 +89,7 @@ static void lcp_started(struct pppcp_data *pppcp) */ static void lcp_finished(struct pppcp_data *pppcp) { - ppp_generate_event(pppcp->ppp, PPP_CLOSING); + ppp_generate_event(pppcp->ppp, PPP_DOWN); } /* @@ -193,15 +193,6 @@ void lcp_open(struct pppcp_data *data) pppcp_generate_event(data, OPEN, NULL, 0); } -void lcp_close(struct pppcp_data *data) -{ - if (data == NULL) - return; - - /* send a CLOSE event to the lcp layer */ - pppcp_generate_event(data, CLOSE, NULL, 0); -} - void lcp_establish(struct pppcp_data *data) { if (data == NULL) @@ -216,8 +207,8 @@ void lcp_terminate(struct pppcp_data *data) if (data == NULL) return; - /* send a DOWN event to the lcp layer */ - pppcp_generate_event(data, DOWN, NULL, 0); + /* send a CLOSE event to the lcp layer */ + pppcp_generate_event(data, CLOSE, NULL, 0); } void lcp_free(struct pppcp_data *lcp) |