From owner-freebsd-net Thu Jan 3 22:45:12 2002 Delivered-To: freebsd-net@freebsd.org Received: from InterJet.dellroad.org (adsl-63-194-81-26.dsl.snfc21.pacbell.net [63.194.81.26]) by hub.freebsd.org (Postfix) with ESMTP id 1AFD037B405 for ; Thu, 3 Jan 2002 22:45:06 -0800 (PST) Received: from arch20m.dellroad.org (arch20m.dellroad.org [10.1.1.20]) by InterJet.dellroad.org (8.9.1a/8.9.1) with ESMTP id WAA58097; Thu, 3 Jan 2002 22:34:04 -0800 (PST) Received: (from archie@localhost) by arch20m.dellroad.org (8.11.6/8.11.6) id g046Y5N23209; Thu, 3 Jan 2002 22:34:05 -0800 (PST) (envelope-from archie) From: Archie Cobbs Message-Id: <200201040634.g046Y5N23209@arch20m.dellroad.org> Subject: Re: netgraph kernel panic In-Reply-To: <20020104043335.GA87710@cairo.zsat.net> "from Scott Lamb at Jan 3, 2002 10:33:35 pm" To: Scott Lamb Date: Thu, 3 Jan 2002 22:34:05 -0800 (PST) Cc: freebsd-net@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL88 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org 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 #include @@ -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 majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message