Subject: Re: NetBSD-1.0: uucp, cu (and PR 461)
To: None <current-users@netbsd.org, port-i386@netbsd.org>
From: Simon J. Gerraty <sjg@zen.void.oz.au>
List: port-i386
Date: 11/11/1994 21:17:41
Ok, I have a better idea of what is wrong now.  I'm not sure whether
it is an i386/isa/com.c bug or a generic kernel one - but I suspect
the following data will help those more familiar with the kernel than
I, to sort it out...

It appeared that whatever was going wrong for uucp was happening when
the dial-up stage had completed (sucessfully).  My first guess was
``its closing the device at that point''.

Indeed it does.  And the following hack stops it - and allows cu and
uucp to work happily.

*** common_sources/conn.c~	Fri Dec 17 16:59:13 1993
--- common_sources/conn.c	Fri Nov 11 20:11:12 1994
***************
*** 548,552 ****
--- 548,553 ----
  	       zphone, ftranslate, zname, iconn_baud (qconn)))
      return FALSE;
  
+   return TRUE;
    return fsysdep_modem_end_dial (qconn, qdial);
  }

Now fsysdep_modem_end_dial() closes the device.  I have not checked
but I assume that it had it open multiple times and so closing should
have been ok - only the last close should cause DTR to be dropped...

I'm assuming that the bug is in the kernel, as a NetBSD-0.9a cu binary
which works under 0.9a gets the same hang-up problem under 1.0.

I've had a _quick_ look at comclose() and can't see that it checks for
whether it is being called for the last time on the device - but
perhaps that is the job of the tty layer?

Anyway, the work around above should get me going... I just have to
get my feed site to switch back to uucp...

--sjg