[news.admin] trn problem

jjong@nysnet.nys.GOV (Jaeson Jong) (03/28/91)

We recently installed trn on our machine and experienced some
trouble runing it on some type of devices. We really appreciate
any help to determine the cause. Here's our story:

We installed trn on our AT&T 3B2 1000 runing system V release 3.2.
It works perfectly on tty terminal or xterm. However, when it is
executed from a window over the local area network, it hangs at the first
prompt ( xxx unread article(s) in xxxxxxx--read now? [+ynq] )
We use AT&T 730 MTG terminals over an AT&T starLAN IEEE 802.3 (Ethernet)
implementation. The OSI network protocol is implemented.

After spending some time on source codes, I found the followings;

* The the "read()" system call in the "circfill()" function, defined in 
  "term.c", returns -1 when it is executed on a starLAN window.

* Which makes "nextin" and the return value of "circfill()" -1.

* Which also makes macro function "input_pending()"  true.

	#define input_pending() ( nextin!=nextout || circfill() )

* Which makes the while loop in "eat_typeahead()" keep calling
  "read_tty()" infinitely.

	  while ( input_pending() )
	     read_tty ( buf, sizeof (buf) );

* Since "nextin" is -1, "nextin" and "nextout" never get a chance
  to be equal.

I temporary solved this problem by modifying

* int
  circfill()
  {
     register int Howmany = read ( devtty, circlebuf+nextin, 1 );

     if ( Howmany ) {
        .
        .

:

  int
  circfill()
  {
     register int Howmany = read ( devtty, circlebuf+nextin, 1 );

     if ( Howmany > 0 ) {
        .
        .



* #define input_pending() ( nextin!=nextout || circfill() )

to;

  #define input_pending() ( nextin!=nextout || circfill() > 0 )


My question is;

Has anybody out there had the same experience?
Does anybody know why the read() system call returns -1 over /dev/slan 
 (the local area network terminal driver) while returning 0 on other tty's.


Jaeson Jong				jjong@nysnet.uunet.uu.net
New York State				uunet!nysnet!jjong
Office of General Services
Strategic Systems Laboratory