X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fipcp.c;h=3d99235440b2d5a6a6a9ea97f8193679b02b9e6f;hp=abeae25b4d1cc5fde77b30228669406980ce8ada;hb=d225d79347bab49e41ec4192e8d3f0ee63702d9c;hpb=a97eec109848f7812daa7cddaa12d37b741884f5 diff --git a/pppd/ipcp.c b/pppd/ipcp.c index abeae25..3d99235 100644 --- a/pppd/ipcp.c +++ b/pppd/ipcp.c @@ -18,7 +18,7 @@ */ #ifndef lint -static char rcsid[] = "$Id: ipcp.c,v 1.16 1995/04/26 06:46:50 paulus Exp $"; +static char rcsid[] = "$Id: ipcp.c,v 1.20 1995/08/10 06:51:04 paulus Exp $"; #endif /* @@ -575,16 +575,15 @@ ipcp_nakci(f, p, len) case CI_ADDR: if (go->neg_addr || no.neg_addr || cilen != CILEN_ADDR) goto bad; - try.neg_addr = 1; try.old_addrs = 0; GETLONG(l, p); ciaddr1 = htonl(l); if (ciaddr1 && go->accept_local) try.ouraddr = ciaddr1; + if (try.ouraddr != 0) + try.neg_addr = 1; no.neg_addr = 1; break; - default: - goto bad; } p = next; } @@ -783,6 +782,7 @@ ipcp_reqci(f, inp, len, reject_if_disagree) * If neither we nor he knows his address, reject the option. */ orc = CONFREJ; + wo->req_addr = 0; /* don't NAK with 0.0.0.0 later */ break; } @@ -843,6 +843,7 @@ ipcp_reqci(f, inp, len, reject_if_disagree) * Don't ACK an address of 0.0.0.0 - reject it instead. */ orc = CONFREJ; + wo->req_addr = 0; /* don't NAK with 0.0.0.0 later */ break; } @@ -886,7 +887,7 @@ ipcp_reqci(f, inp, len, reject_if_disagree) } } ho->maxslotindex = maxslotindex; - ho->cflag = wo->cflag; + ho->cflag = cflag; } else { ho->old_vj = 1; ho->maxslotindex = MAX_STATES - 1;