bin/45760: pppd(8) incoreectly handles timeouts after long run
[PATCH]
Eugene Grosbein
eugen at grosbein.pp.ru
Sun Apr 6 06:12:50 PDT 2003
Hi!
I've found the source of this behavour.
pppd 2.3.5 violates RFC1548, section 5.8 that states:
Echo-Request and Echo-Reply packets may only be sent in the LCP
Opened state. Echo-Request and Echo-Reply packets received in any
state other than the LCP Opened state SHOULD be silently
discarded.
pppd 2.3.5 will schedule one extra LCP Echo for each incident
when it detects via LCP Echos that peer has disconnected.
So my the solution was to patch lcp.c:
--- usr.sbin/pppd/lcp.c.orig Sun Apr 6 21:05:21 2003
+++ usr.sbin/pppd/lcp.c Sun Apr 6 21:05:36 2003
@@ -1737,6 +1737,8 @@
fsm *f;
{
LcpSendEchoRequest (f);
+ if (f->state != OPENED)
+ return;
/*
* Start the timer for the next interval.
I've checked pppd 2.4.1 and found that it contains exactly this code.
Please apply the patch.
Eugene Grosbein
More information about the freebsd-net
mailing list