ppp: fix event generation on close

Prevents too early transition to PPP_DEAD
This commit is contained in:
Kristen Carlson Accardi 2010-04-02 10:28:18 -07:00 committed by Denis Kenzior
parent 398acbc976
commit c2a589e732
3 changed files with 5 additions and 17 deletions

View File

@ -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 */ /* otherwise we need to wait for the peer to send us a challenge */
break; break;
case PPP_TERMINATION: case PPP_TERMINATION:
/* signal DOWN event to LCP */
lcp_terminate(ppp->lcp); lcp_terminate(ppp->lcp);
break; break;
case PPP_DEAD: 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) void g_at_ppp_shutdown(GAtPPP *ppp)
{ {
/* send a CLOSE event to the lcp layer */ ppp_generate_event(ppp, PPP_CLOSING);
lcp_close(ppp->lcp);
} }
void g_at_ppp_ref(GAtPPP *ppp) void g_at_ppp_ref(GAtPPP *ppp)

View File

@ -153,7 +153,6 @@ gboolean ppp_get_acfc(GAtPPP *ppp);
struct pppcp_data * lcp_new(GAtPPP *ppp); struct pppcp_data * lcp_new(GAtPPP *ppp);
void lcp_free(struct pppcp_data *lcp); void lcp_free(struct pppcp_data *lcp);
void lcp_open(struct pppcp_data *data); void lcp_open(struct pppcp_data *data);
void lcp_close(struct pppcp_data *data);
void lcp_establish(struct pppcp_data *data); void lcp_establish(struct pppcp_data *data);
void lcp_terminate(struct pppcp_data *data); void lcp_terminate(struct pppcp_data *data);
void lcp_protocol_reject(struct pppcp_data *lcp, guint8 *packet, gsize len); void lcp_protocol_reject(struct pppcp_data *lcp, guint8 *packet, gsize len);

View File

@ -71,7 +71,7 @@ static void lcp_up(struct pppcp_data *pppcp)
*/ */
static void lcp_down(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) 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); 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) void lcp_establish(struct pppcp_data *data)
{ {
if (data == NULL) if (data == NULL)
@ -216,8 +207,8 @@ void lcp_terminate(struct pppcp_data *data)
if (data == NULL) if (data == NULL)
return; return;
/* send a DOWN event to the lcp layer */ /* send a CLOSE event to the lcp layer */
pppcp_generate_event(data, DOWN, NULL, 0); pppcp_generate_event(data, CLOSE, NULL, 0);
} }
void lcp_free(struct pppcp_data *lcp) void lcp_free(struct pppcp_data *lcp)