From ru@ucb.crimea.ua Wed Oct  6 14:36:59 1999
Return-Path: <ru@ucb.crimea.ua>
Received: from relay.ucb.crimea.ua (relay.ucb.crimea.ua [212.110.138.1])
	by hub.freebsd.org (Postfix) with ESMTP id 6B55215163
	for <FreeBSD-gnats-submit@freebsd.org>; Wed,  6 Oct 1999 14:36:03 -0700 (PDT)
	(envelope-from ru@ucb.crimea.ua)
Received: (from ru@localhost)
	by relay.ucb.crimea.ua (8.9.3/8.9.3/UCB) id AAA52838;
	Thu, 7 Oct 1999 00:35:50 +0300 (EEST)
	(envelope-from ru)
Message-Id: <199910062135.AAA52838@relay.ucb.crimea.ua>
Date: Thu, 7 Oct 1999 00:35:50 +0300 (EEST)
From: ru@freebsd.org
Sender: ru@ucb.crimea.ua
Reply-To: ru@ucb.crimea.ua
To: FreeBSD-gnats-submit@freebsd.org
Subject: ppp(8) no more detects carrier lost
X-Send-Pr-Version: 3.2

>Number:         14170
>Category:       bin
>Synopsis:       ppp(8) no more detects carrier lost
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    brian
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Oct  6 14:40:01 PDT 1999
>Closed-Date:    Thu Oct 7 00:36:37 PDT 1999
>Last-Modified:  Thu Oct  7 00:37:22 PDT 1999
>Originator:     Ruslan Ermilov
>Release:        FreeBSD 3.3-STABLE i386
>Organization:
United Commercial Bank
>Environment:

Latest RELENG_3 ppp sources
-- or --
Latest HEAD ppp sources compiled with -DNOKLDLOAD -DNOI4B

>Description:

When either remote or local end drops a connection ungracefully,
e.g. by simply turning off the modem, ppp(8) does not detect the
carrier lost and continues occupy the link.  Consequences are
obvious.  No further logins could be made on this link, since
getty will not get control over this line.

>How-To-Repeat:

1. Make sure you have `set timeout 0'.
2. Run ppp(8) in -direct mode with modem device.
3. Turn off the modem (either on local or remote side).
4. See ppp(8) will live forever.

>Fix:
	
Reverting to 3.2-RELEASE's sources does the trick.

>Release-Note:
>Audit-Trail:

From: Ruslan Ermilov <ru@FreeBSD.ORG>
To: FreeBSD-gnats-submit@FreeBSD.ORG
Cc:  
Subject: Re: bin/14170: ppp(8) no more detects carrier lost
Date: Thu, 7 Oct 1999 01:35:48 +0300

 On Thu, Oct 07, 1999 at 12:35:50AM +0300, ru@FreeBSD.ORG wrote:
 > 
 > When either remote or local end drops a connection ungracefully,
 > e.g. by simply turning off the modem, ppp(8) does not detect the
 > carrier lost and continues occupy the link.  Consequences are
 > obvious.  No further logins could be made on this link, since
 > getty will not get control over this line.
 > 
 Just to help Brian find the problem:
 
 The following version still detects carrier:
 # cd /usr/src/usr.sbin/ppp; cvs upd -D"08/06/1999 13:00:00 PDT" -P -d
 
 But the following (and further) do not:
 # cd /usr/src/usr.sbin/ppp; cvs upd -D"08/06/1999 13:05:00 PDT" -P -d
 
 
 So, the problem raised somewhere in the following commit:
 
 :brian       1999/08/06 13:04:09 PDT
 :
 :  Modified files:
 :    usr.sbin/ppp         Makefile README.changes bundle.c ccp.c 
 :                         datalink.c datalink.h deflate.c exec.c 
 :                         hdlc.c ip.c link.c pap.c physical.c 
 :                         physical.h ppp.8 tcp.c tty.c tun.c udp.c 
 :                         vjcomp.c 
 :  Added files:
 :    usr.sbin/ppp         i4b.c i4b.h 
 :  Log:
 :  Add ISDN support via isdnd & i4b.  This requires version
 :  0.81.1 of the i4b code - namely support of the I4B_VR_REQ
 :  ioctl via the i4brbchX device.
 :  
 :  Ppp controls the phone number, but idle timers and
 :  SYNC/RAW decisions are still made by isdnd (in isdnd.rc).
 :  
 :  This involves a new datalink state machine phase.  The
 :  ``wait for carrier'' phase happens after dialing but
 :  before logging in.  The whole dial state should really
 :  be abstracted so that each device type can deal with it
 :  in its own way (thinking about PPPoE) - but that'll have
 :  to wait.
 :  
 :  The ``set cd'' symantics remain the same for tty devices,
 :  but we now delay until we either get CD or timeout waiting
 :  (at which time we drop the link if we require CD).
 :  
 :  For i4b devices we always insist on carrier.
 :  
 :  Thanks to hm@ for his help, and especially for pointing out
 :  that I *don't* need to re-implement isdnd (that was a huge
 :  waste of time !) :-]
 :  
 :  Revision  Changes    Path
 :  1.56      +8 -2      src/usr.sbin/ppp/Makefile
 :  1.12      +2 -0      src/usr.sbin/ppp/README.changes
 :  1.60      +2 -3      src/usr.sbin/ppp/bundle.c
 :  1.51      +2 -2      src/usr.sbin/ppp/ccp.c
 :  1.43      +27 -6     src/usr.sbin/ppp/datalink.c
 :  1.8       +9 -7      src/usr.sbin/ppp/datalink.h
 :  1.15      +1 -3      src/usr.sbin/ppp/deflate.c
 :  1.7       +2 -16     src/usr.sbin/ppp/exec.c
 :  1.44      +1 -16     src/usr.sbin/ppp/hdlc.c
 :  1.68      +1 -3      src/usr.sbin/ppp/ip.c
 :  1.13      +1 -2      src/usr.sbin/ppp/link.c
 :  1.37      +2 -2      src/usr.sbin/ppp/pap.c
 :  1.20      +16 -5     src/usr.sbin/ppp/physical.c
 :  1.14      +14 -5     src/usr.sbin/ppp/physical.h
 :  1.188     +41 -10    src/usr.sbin/ppp/ppp.8
 :  1.5       +2 -2      src/usr.sbin/ppp/tcp.c
 :  1.10      +63 -76    src/usr.sbin/ppp/tty.c
 :  1.16      +3 -1      src/usr.sbin/ppp/tun.c
 :  1.4       +2 -2      src/usr.sbin/ppp/udp.c
 :  1.32      +2 -2      src/usr.sbin/ppp/vjcomp.c
 
 
 -- 
 Ruslan Ermilov		Sysadmin and DBA of the
 ru@ucb.crimea.ua	United Commercial Bank,
 ru@FreeBSD.org		FreeBSD committer,
 +380.652.247.647	Simferopol, Ukraine
 
 http://www.FreeBSD.org	The Power To Serve
 http://www.oracle.com	Enabling The Information Age
 

From: Ruslan Ermilov <ru@FreeBSD.ORG>
To: FreeBSD-gnats-submit@FreeBSD.ORG
Cc:  
Subject: Re: bin/14170: ppp(8) no more detects carrier lost
Date: Thu, 7 Oct 1999 02:03:40 +0300

 As for the -STABLE, the following version still detects carrier:
 # cd /usr/src/usr.sbin/ppp; cvs upd -rRELENG_3 -D"08/23/1999 14:59:00 PDT" -P -d
  
 But the following (and further) do not:
 # cd /usr/src/usr.sbin/ppp; cvs upd -rRELENG_3 -D"08/23/1999 15:00:00 PDT" -P -d
  
 :brian       1999/08/23 14:59:56 PDT
 :
 :  Modified files:        (Branch: RELENG_3)
 :    usr.sbin/ppp         Makefile README.changes alias_cmd.c 
 :                         alias_cmd.h arp.c async.c async.h auth.c 
 :                         bundle.c bundle.h cbcp.c cbcp.h ccp.c 
 :                         ccp.h chap.c chap.h chat.c chat.h 
 :                         command.c command.h datalink.c datalink.h 
 :                         deflate.c defs.c defs.h filter.c filter.h 
 :                         fsm.c fsm.h hdlc.c hdlc.h iface.c iface.h 
 :                         ip.c ip.h ipcp.c ipcp.h iplist.c lcp.c 
 :                         lcp.h link.c link.h log.c log.h lqr.c 
 :                         lqr.h main.c mbuf.c mbuf.h mp.c mp.h 
 :                         pap.c pap.h physical.c physical.h ppp.8 
 :                         pred.c prompt.c radius.c route.c 
 :                         slcompress.c systems.c throughput.c 
 :                         throughput.h timer.c tun.c vjcomp.c 
 :                         vjcomp.h 
 :  Added files:           (Branch: RELENG_3)
 :    usr.sbin/ppp         acf.c acf.h exec.c exec.h i4b.c i4b.h 
 :                         layer.h proto.c proto.h sync.c sync.h 
 :                         tcp.c tcp.h tty.c tty.h udp.c udp.h 
 :  Removed files:         (Branch: RELENG_3)
 :    usr.sbin/ppp         lcpproto.h modem.c modem.h 
 :  Log:
 :  MFC: Abstract the physical device layer (``show modem'' is now ``show
 :       physical'').
 :       Support ``physical'' and ``sync'' logging.
 :       ``set weight'' -> ``set bandwidth'' and a ``set autoload'' rewrite.
 :       ``set cd'' and better carrier detection.
                        ^^^^^^^^^^^^^^^^^^^^^^^^ :-)
 :       PPPoISDN support (.defined out in the Makefile as it's only
 :       functional with i4b-00.83.00 or better installed)
 :       PPPoUDP support
 :       -alias -> -nat
 :       Add -foreground and -quiet command lines switches
 :       Minimum idle timer support
 :       ``alias port'' range support
 :       Some alignment wrinkles ironed out
 :       Support for TUNSIFMODE and TUNSLMODE (if defined)
 :       Assorted throughput measurement improvements
 :       ``enable/disable keep-session'' support
 :       Adjust filter sets built with MYADDR and HISADDR when the IPs change
 :       Allow forward jumps in filter rules
 :       Support ospf filtering
 :       Better handing of ``no number'' CBCP REQs
 :       Handle file descriptor close-on-exec flags properly before exec()s
 :       Drop packets received when the current state is wrong
 :       Expand PROCESSID correctly when executing commands
 :       Add a new CARRIER phase (this is temporary - 'till ``set dial'' is
 :       abstracted and made device specific)
 :       Handle IPCP code rejects
 :       Support ``deny enddisc''
 :       Don't moan about group write permissions to ppp.conf
 :       More verbiage (now I'm making words up) in ``show mp''
 :       Show the correct `next' values in ``show timer''
 :       Plus an assortment of other minor changes
 :  
 :  Revision  Changes    Path
 :  1.50.2.4  +20 -10    src/usr.sbin/ppp/Makefile
 :  1.4.2.3   +13 -3     src/usr.sbin/ppp/README.changes
 :  1.18.2.4  +173 -46   src/usr.sbin/ppp/alias_cmd.c
 :  1.8.2.4   +7 -5      src/usr.sbin/ppp/alias_cmd.h
 :  1.31.2.4  +3 -1      src/usr.sbin/ppp/arp.c
 :  1.17.2.4  +48 -32    src/usr.sbin/ppp/async.c
 :  1.4.2.1   +3 -3      src/usr.sbin/ppp/async.h
 :  1.34.2.6  +7 -4      src/usr.sbin/ppp/auth.c
 :  1.43.2.6  +241 -289  src/usr.sbin/ppp/bundle.c
 :  1.20.2.4  +27 -26    src/usr.sbin/ppp/bundle.h
 :  1.8.2.4   +39 -12    src/usr.sbin/ppp/cbcp.c
 :  1.1.4.1   +2 -2      src/usr.sbin/ppp/cbcp.h
 :  1.40.2.5  +69 -41    src/usr.sbin/ppp/ccp.c
 :  1.19.2.4  +6 -6      src/usr.sbin/ppp/ccp.h
 :  1.37.2.5  +49 -38    src/usr.sbin/ppp/chap.c
 :  1.10.2.5  +2 -2      src/usr.sbin/ppp/chap.h
 :  1.52.2.5  +38 -85    src/usr.sbin/ppp/chat.c
 :  1.10.2.1  +1 -2      src/usr.sbin/ppp/chat.h
 :  1.177.2.5 +173 -117  src/usr.sbin/ppp/command.c
 :  1.15.2.4  +2 -2      src/usr.sbin/ppp/command.h
 :  1.25.2.8  +52 -26    src/usr.sbin/ppp/datalink.c
 :  1.5.4.4   +9 -7      src/usr.sbin/ppp/datalink.h
 :  1.11.2.4  +22 -23    src/usr.sbin/ppp/deflate.c
 :  1.17.2.5  +167 -1    src/usr.sbin/ppp/defs.c
 :  1.36.2.5  +7 -4      src/usr.sbin/ppp/defs.h
 :  1.26.2.4  +222 -101  src/usr.sbin/ppp/filter.c
 :  1.13.2.4  +50 -36    src/usr.sbin/ppp/filter.h
 :  1.37.2.4  +66 -72    src/usr.sbin/ppp/fsm.c
 :  1.19.2.4  +2 -2      src/usr.sbin/ppp/fsm.h
 :  1.36.2.4  +62 -284   src/usr.sbin/ppp/hdlc.c
 :  1.15.2.3  +5 -4      src/usr.sbin/ppp/hdlc.h
 :  1.2.4.4   +56 -2     src/usr.sbin/ppp/iface.c
 :  1.1.4.1   +3 -1      src/usr.sbin/ppp/iface.h
 :  1.54.2.4  +261 -259  src/usr.sbin/ppp/ip.c
 :  1.11.2.1  +3 -3      src/usr.sbin/ppp/ip.h
 :  1.68.2.6  +27 -30    src/usr.sbin/ppp/ipcp.c
 :  1.22.2.4  +2 -2      src/usr.sbin/ppp/ipcp.h
 :  1.7.2.1   +2 -1      src/usr.sbin/ppp/iplist.c
 :  1.66.2.5  +23 -18    src/usr.sbin/ppp/lcp.c
 :  1.19.2.4  +2 -2      src/usr.sbin/ppp/lcp.h
 :  1.6.4.4   +181 -35   src/usr.sbin/ppp/link.c
 :  1.4.4.1   +14 -6     src/usr.sbin/ppp/link.h
 :  1.35.2.5  +29 -16    src/usr.sbin/ppp/log.c
 :  1.23.2.1  +11 -9     src/usr.sbin/ppp/log.h
 :  1.30.2.4  +161 -43   src/usr.sbin/ppp/lqr.c
 :  1.13.2.1  +7 -3      src/usr.sbin/ppp/lqr.h
 :  1.146.2.6 +81 -64    src/usr.sbin/ppp/main.c
 :  1.22.2.4  +147 -55   src/usr.sbin/ppp/mbuf.c
 :  1.14.2.3  +52 -18    src/usr.sbin/ppp/mbuf.h
 :  1.17.4.5  +148 -47   src/usr.sbin/ppp/mp.c
 :  1.4.4.1   +13 -4     src/usr.sbin/ppp/mp.h
 :  1.27.2.6  +30 -20    src/usr.sbin/ppp/pap.c
 :  1.6.2.6   +2 -2      src/usr.sbin/ppp/pap.h
 :  1.7.2.2   +847 -67   src/usr.sbin/ppp/physical.c
 :  1.5.2.4   +71 -31    src/usr.sbin/ppp/physical.h
 :  1.142.2.9 +467 -265  src/usr.sbin/ppp/ppp.8
 :  1.22.2.4  +14 -12    src/usr.sbin/ppp/pred.c
 :  1.12.4.4  +2 -1      src/usr.sbin/ppp/prompt.c
 :  1.4.2.5   +2 -1      src/usr.sbin/ppp/radius.c
 :  1.54.2.4  +2 -1      src/usr.sbin/ppp/route.c
 :  1.20.2.4  +5 -7      src/usr.sbin/ppp/slcompress.c
 :  1.40.2.6  +3 -2      src/usr.sbin/ppp/systems.c
 :  1.8.2.1   +123 -47   src/usr.sbin/ppp/throughput.c
 :  1.5.2.1   +22 -13    src/usr.sbin/ppp/throughput.h
 :  1.32.2.1  +15 -8     src/usr.sbin/ppp/timer.c
 :  1.10.2.4  +10 -11    src/usr.sbin/ppp/tun.c
 :  1.23.2.4  +45 -37    src/usr.sbin/ppp/vjcomp.c
 :  1.6.2.1   +3 -3      src/usr.sbin/ppp/vjcomp.h
  
 -- 
 Ruslan Ermilov		Sysadmin and DBA of the
 ru@ucb.crimea.ua	United Commercial Bank,
 ru@FreeBSD.org		FreeBSD committer,
 +380.652.247.647	Simferopol, Ukraine
 
 http://www.FreeBSD.org	The Power To Serve
 http://www.oracle.com	Enabling The Information Age
 
Responsible-Changed-From-To: freebsd-bugs->brian 
Responsible-Changed-By: ru 
Responsible-Changed-When: Wed Oct 6 16:21:47 PDT 1999 
Responsible-Changed-Why:  
Over to the maintainer. 

From: Brian Somers <brian@Awfulhak.org>
To: ru@ucb.crimea.ua
Cc: FreeBSD-gnats-submit@FreeBSD.ORG
Subject: Re: bin/14170: ppp(8) no more detects carrier lost 
Date: Thu, 07 Oct 1999 00:02:42 +0100

 > >How-To-Repeat:
 > 
 > 1. Make sure you have `set timeout 0'.
 > 2. Run ppp(8) in -direct mode with modem device.
 > 3. Turn off the modem (either on local or remote side).
 > 4. See ppp(8) will live forever.
 
 What does the debug log say about the links carrier status ?
 
 -- 
 Brian <brian@Awfulhak.org>                        <brian@FreeBSD.org>
       <http://www.Awfulhak.org>                   <brian@OpenBSD.org>
 Don't _EVER_ lose your sense of humour !          <brian@FreeBSD.org.uk>
 
 
 
State-Changed-From-To: open->closed 
State-Changed-By: brian 
State-Changed-When: Thu Oct 7 00:36:37 PDT 1999 
State-Changed-Why:  
Fixed in -current.  I'll mfc when **Ruslan** confirms it works on his end. 
>Unformatted:
