Skip to contentSkip to conversation

ppp: alert ipcp when lcp is down

PATCH In review Kristen Carlson Accardi 2 participants 2 messages Apr 22, 2010

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ppp: alert ipcp when lcp is down

This cleanly shuts down the network interface

---
 gatchat/gatppp.c  |    5 +++++
 gatchat/ppp.h     |    1 +
 gatchat/ppp_lcp.c |    1 +
 3 files changed, 7 insertions(+), 0 deletions(-)
gatchat/gatppp.c +5 -0
index b7834e3..4f49404 100644
@@ -429,6 +429,11 @@ void ppp_net_down_notify(GAtPPP *ppp)
 	ppp->net = NULL;
 }
 
+void ppp_lcp_down_notify(GAtPPP *ppp)
+{
+	pppcp_signal_down(ppp->ipcp);
+}
+
 void ppp_set_recv_accm(GAtPPP *ppp, guint32 accm)
 {
 	ppp->recv_accm = accm;
gatchat/ppp.h +1 -0
index 07483a9..e60bd23 100644
@@ -117,3 +117,4 @@ void ppp_net_down_notify(GAtPPP *ppp);
 void ppp_set_recv_accm(GAtPPP *ppp, guint32 accm);
 void ppp_set_xmit_accm(GAtPPP *ppp, guint32 accm);
 void ppp_set_mtu(GAtPPP *ppp, const guint8 *data);
+void ppp_lcp_down_notify(GAtPPP *ppp);
gatchat/ppp_lcp.c +1 -0
index 8639c6c..5a9750d 100644
@@ -114,6 +114,7 @@ static void lcp_down(struct pppcp_data *pppcp)
 
 	lcp_reset_config_options(lcp);
 	pppcp_set_local_options(pppcp, lcp->options, lcp->options_len);
+	ppp_lcp_down_notify(pppcp_get_ppp(pppcp));
 	ppp_enter_phase(pppcp_get_ppp(pppcp), PPP_PHASE_TERMINATION);
 }
 
Signature · 1 line
1.6.6.1
#1 lore raw

Hi Kristen,

gatchat/ppp_lcp.c static void lcp_down(struct pppcp_data *pppcp) · line 119

Quoted 6 lines
gatchat/ppp_lcp.c +1 -0
 	lcp_reset_config_options(lcp);
 	pppcp_set_local_options(pppcp, lcp->options, lcp->options_len);
+	ppp_lcp_down_notify(pppcp_get_ppp(pppcp));
 	ppp_enter_phase(pppcp_get_ppp(pppcp), PPP_PHASE_TERMINATION);
 }

I fixed this somewhat different by calling down & close on ipcp layer from within the termination phase.

Regards,
-Denis