X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fipcp.c;h=a0956d9903884a52b5d352daa978d7d1062d3658;hb=75951d7bb62003e37dd390e773df19f16250d27d;hp=6aeb3abae5dcb2ce06530225c0912fe62ce4f788;hpb=41cfb0f5c50ea8bce32f78ab921fc6f476cad788;p=ppp.git diff --git a/pppd/ipcp.c b/pppd/ipcp.c index 6aeb3ab..a0956d9 100644 --- a/pppd/ipcp.c +++ b/pppd/ipcp.c @@ -18,7 +18,7 @@ */ #ifndef lint -static char rcsid[] = "$Id: ipcp.c,v 1.39 1999/03/16 03:12:03 paulus Exp $"; +static char rcsid[] = "$Id: ipcp.c,v 1.41 1999/03/16 22:54:38 paulus Exp $"; #endif /* @@ -52,6 +52,7 @@ static int cis_received[NUM_PPP]; /* # Conf-Reqs received */ static int default_route_set[NUM_PPP]; /* Have set up a default route */ static int proxy_arp_set[NUM_PPP]; /* Have created proxy arp entry */ static bool usepeerdns; /* Ask peer for DNS addrs */ +static int ipcp_is_up; /* have called np_up() */ /* * Callbacks for fsm code. (CI = Configuration Information) @@ -182,6 +183,7 @@ struct protent ipcp_protent = { NULL, 1, "IPCP", + "IP", ipcp_option_list, ip_check_options, ip_demand_conf, @@ -1497,6 +1499,7 @@ ipcp_up(f) } np_up(f->unit, PPP_IP); + ipcp_is_up = 1; /* * Execute the ip-up script, like this: @@ -1520,7 +1523,10 @@ ipcp_down(f) fsm *f; { IPCPDEBUG(("ipcp: down")); - np_down(f->unit, PPP_IP); + if (ipcp_is_up) { + ipcp_is_up = 0; + np_down(f->unit, PPP_IP); + } sifvjcomp(f->unit, 0, 0, 0); /*