From owner-freebsd-bugs@FreeBSD.ORG Sun Apr 6 06:20:14 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ED0FF37B401 for ; Sun, 6 Apr 2003 06:20:14 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9367F43F75 for ; Sun, 6 Apr 2003 06:20:14 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.9/8.12.9) with ESMTP id h36DKEUp002020 for ; Sun, 6 Apr 2003 06:20:14 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.9/8.12.9/Submit) id h36DKEe6002019; Sun, 6 Apr 2003 06:20:14 -0700 (PDT) Date: Sun, 6 Apr 2003 06:20:14 -0700 (PDT) Message-Id: <200304061320.h36DKEe6002019@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Eugene Grosbein Subject: Re: bin/45760: pppd(8) incoreectly handles timeouts after long run [PATCH] X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Eugene Grosbein List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Apr 2003 13:20:15 -0000 The following reply was made to PR bin/45760; it has been noted by GNATS. From: Eugene Grosbein To: bug-followup@freebsd.org Cc: peter@freebsd.org, net@freebsd.org Subject: Re: bin/45760: pppd(8) incoreectly handles timeouts after long run [PATCH] Date: Sun, 6 Apr 2003 21:12:04 +0800 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