Hi: I've noticed the IPCP loop problem too since upgrading from woody to sarge. I dug around and found that the handling of IPCP reject messages of the addresses option has been broken. Upstream 2.4.3 has a fix for it.
Here is a backport of the 2.4.3 fix. However, I don't think this is what'll fix Tobias's problem. He seems to need an option which makes my patch (the one that terminates the negotiation if we don't agree on an address) optional. Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Index: pppd/ipcp.c =================================================================== RCS file: /var/cvs/snwb/packages/ppp/pppd/ipcp.c,v retrieving revision 1.6 diff -u -r1.6 ipcp.c --- pppd/ipcp.c 29 Nov 2004 22:49:23 -0000 1.6 +++ pppd/ipcp.c 14 Jan 2005 03:04:13 -0000 @@ -730,10 +730,8 @@ * First see if we want to change our options to the old * forms because we have received old forms from the peer. */ - if ((wo->neg_addr || wo->old_addrs) && !go->neg_addr && !go->old_addrs) { - /* use the old style of address negotiation */ - go->old_addrs = 1; - } + if (go->neg_addr && go->old_addrs && !ho->neg_addr && ho->old_addrs) + go->neg_addr = 0; if (wo->neg_vj && !go->neg_vj && !go->old_vj) { /* try an older style of VJ negotiation */ /* use the old style only if the peer did */