Subject: port-pmax/3514: 3min SCC does not properly track DCD
To: None <>
From: maximum entropy <>
List: netbsd-bugs
Date: 04/18/1997 22:02:42
>Number:         3514
>Category:       port-pmax
>Synopsis:       3min SCC does not properly track DCD
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    gnats-admin (GNATS administrator)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Apr 18 19:35:01 1997
>Originator:     maximum entropy
>Release:        <NetBSD-current source date> Apr 10 1997
System: NetBSD 1.2D NetBSD 1.2D (UBIK) #8: Thu Apr 10 10:27:44 EDT 1997 pmax

TTYs connected to an SCC port do not properly track carrier detect.  I
consider this a serious problem -- consider a situation where you're
logged in and su'd to root, you lose carrier, and some evil person
dials in and gets the line you were on.

I noticed this problem because I was trying to set up a SLIP
connection via one of the ports on my 5000/120, and sliplogin was not
getting a SIGHUP when the line dropped.

The code in scc.c has some vague comments that seem to indicate this
code was commented out to fix a problem with console handling.
However, when I enabled the code, I was able to use a serial console
with no obvious problem.

Set up a getty on a modem, log in on that port, drop carrier, reconnect

--- /usr/src/sys/arch/pmax/tc/scc.c-orig	Wed Oct 16 20:35:19 1996
+++ /usr/src/sys/arch/pmax/tc/scc.c	Thu Apr 10 04:11:55 1997
@@ -1448,14 +1448,12 @@
 	 * Is it related to  console handling?
 #ifndef alpha
-#ifdef	notyet	/*XXX -does this help pmax console? */
 	if (car) {
 		/* carrier present */
 		if (!(tp->t_state & TS_CARR_ON))
 			(void)(*linesw[tp->t_line].l_modem)(tp, 1);
 	} else if (tp->t_state & TS_CARR_ON)
 		(void)(*linesw[tp->t_line].l_modem)(tp, 0);
-#endif /*notyet*/
 #endif /* !alpha */