X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fipcp.c;h=d17dbd28a04d225cd5d5d43dc40547c3e358eb3e;hb=344014dd4126727fa3f3f409a9e4a6ccc6a5e28b;hp=fcf17b1e7472dcb4bc8c07c0b73827daf1e92c5f;hpb=9fe8923419a954fedf8b6d1a6cc07b45f165c1ab;p=ppp.git diff --git a/pppd/ipcp.c b/pppd/ipcp.c index fcf17b1..d17dbd2 100644 --- a/pppd/ipcp.c +++ b/pppd/ipcp.c @@ -678,8 +678,9 @@ ipcp_resetci(fsm *f) ipcp_options *go = &ipcp_gotoptions[f->unit]; ipcp_options *ao = &ipcp_allowoptions[f->unit]; - wo->req_addr = (wo->neg_addr || wo->old_addrs) && - (ao->neg_addr || ao->old_addrs); + wo->req_addr = ((wo->neg_addr || wo->old_addrs) && + (ao->neg_addr || ao->old_addrs)) || + (wo->hisaddr && !wo->accept_remote); if (wo->ouraddr == 0) wo->accept_local = 1; if (wo->hisaddr == 0) @@ -1648,7 +1649,8 @@ endswitch: * option safely. */ if (rc != CONFREJ && !ho->neg_addr && !ho->old_addrs && - wo->req_addr && !reject_if_disagree && !noremoteip) { + wo->req_addr && !reject_if_disagree && + ((wo->hisaddr && !wo->accept_remote) || !noremoteip)) { if (rc == CONFACK) { rc = CONFNAK; ucp = inp; /* reset pointer */