Scott Lamb writes: > FreeBSD 4.5-PRERELEASE (as of a few days ago) is crashing consistently > when I try to initiate a PPTP connection to with mpd-netgraph 3.3 (from > ports).
This is due to a problem caused by the peer's "outside" PPTP IP address (the one from mpd.links) being equal to its "inside" IP address (the one from "set ipcp ranges ..."). Make those different and it should stop crashing. Also, apply the patch below to prevent it from happening again. -Archie __________________________________________________________________________ Archie Cobbs * Packet Design * http://www.packetdesign.com Index: ipcp.c =================================================================== RCS file: /home/cvs/archie/mpd/src/ipcp.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ipcp.c 2001/04/12 17:03:31 1.2 +++ ipcp.c 2001/12/16 03:47:25 1.3 @@ -19,6 +19,7 @@ #include "custom.h" #include "msg.h" #include "ngfunc.h" +#include "pptp.h" #include <netgraph.h> #include <sys/mbuf.h> @@ -607,7 +608,7 @@ switch (mode) { case MODE_REQ: if (!IpAddrInRange(&ipcp->conf.peer_allow, *ip) || !ip->s_addr) { - if (ipcp->peer_addr.s_addr == 0) +nak_ip: if (ipcp->peer_addr.s_addr == 0) Log(LG_IPCP, (" %s", "no IP address available for peer!")); if (Enabled(&ipcp->conf.options, IPCP_CONF_PRETENDIP)) { Log(LG_IPCP, (" pretending that %s is OK, will ignore", @@ -620,6 +621,17 @@ Log(LG_IPCP, (" NAKing with %s", inet_ntoa(*ip))); FsmNak(fp, opt); break; + } + if (bund->links[0]->phys->type == &gPptpPhysType) { + struct in_addr pip; + + lnk = bund->links[0]; + pip = PptpGetPeerIp(); + if (ip->s_addr == pip.s_addr) { + Log(LG_IPCP, + (" Same as PPTP IP; would cause routing loop")); + goto nak_ip; + } } Log(LG_IPCP, (" %s is OK", inet_ntoa(*ip))); ipcp->peer_addr = *ip; To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-net" in the body of the message