Date: Mon, 29 Apr 1996 10:23:49 +0200 (SAST) From: smarq@ucthpx.uct.ac.za (S Marquard) To: freebsd-questions@freebsd.org Subject: PPPD doesn't die cleanly in 2.1-R (bug?) Message-ID: <m0uDoFJ-000vaeC@ucthpx.uct.ac.za>
next in thread | raw e-mail | index | archive | help
In the pppd (kernel PPP) in 2.1-RELEASE, if a pppd process dies on a read error, the cleanup procedures are never called. This results in the ppp0 or whatever interface being left configured with the host and remote IP addresses used for that session. If the system is setup to dynamically allocate PPP addresses, this can cause problems - another PPP session can use the same PPP interface, with different host and remote IPs. The interface doesn't get reconfigured for some reason to the new addresses, and a subsequent PPP session on a different ppp interface which is allocated the addresses of the original session (which died), fails. The PPP addresses are on a different subnet to the ethernet interface, and proxyarp is not being used. I fixed this problem by the following patch to /usr/src/usr.sbin/pppd/sys-bsd.c: *** sys-bsd.c.OLD Mon Feb 26 22:11:17 1996 --- sys-bsd.c Mon Apr 29 10:13:09 1996 *************** *** 168,173 **** --- 168,174 ---- return -1; } syslog(LOG_ERR, "read(fd): %m"); + lcp_lowerdown(0); /* die cleanly */ die(1); } return len; Since making this change, things have worked perfectly. Is this a genuine bug in 2.1 pppd, and has it been fixed in -current and -stable? Stephen Marquard smarq@ucthpx.uct.ac.za scm@picasso.wcape.school.za
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?m0uDoFJ-000vaeC>