[comp.sys.apollo] vt100 woes

samit@demon.siemens.com (Ben Samit) (07/06/89)

Scenario:
Like most others, I have been having serious problems with
rlogin and the vt100 emulator under sr10.1 .  I have an open call to the
response center but have seen little results.  So I ftp'd screen2 from
an archive site.  It wouldn't compile due to a C-compiler feature.  I
changed the order of some include files.  It compiled but would not run.
I ftp'd the original screen (version 1), played with the order of the
include files.  It compiled and ran.  It also hung just as badly as the
vt100 emulator.  hmm...  maybe rlogin is busticated, not the emulator.
I am now running telnet instead of rlogin under the vt100 window.  It
hasn't hung yet.

Conclusion:
rlogin is broke (or so it seems to me).

Some info:
running sr10.1, bsd4.3, csh
can hang my vt100 window every time by rlogging into our vax and running
emacs. The vt100 emulator hangs on exit of emacs, as does screen.
Neither hangs when connecting with telnet instead of rlogin.

Hope this helps someone,
BS

|                     "It's a jelly" - Bob McKenzie                          |
| ARPA:    samit@siemens.siemens.com       uucp: ..!princeton!siemens!samit  |
| snail:   Siemens SCR  755 College Rd East  Princeton, NJ 08540-6668        |
| These opinions are solely mine and in no way reflect those of my employer. |

sahayman@iuvax.cs.indiana.edu (Steve Hayman) (07/07/89)

>running sr10.1, bsd4.3, csh
>can hang my vt100 window every time by rlogging into our vax and running
>emacs. The vt100 emulator hangs on exit of emacs, as does screen.

We noticed this too.  You can get around most of the problems by using
"rlogin -8" instead of "rlogin", but there are still a few other ways
to make rlogin hang.  If you have the rlogin source (you can ftp it
from uunet.uu.net) you can make a small patch to give you a more
reliable version of rlogin.  The fix is to have the variable "eight"
always set, and throw in a "0" into one if-statement in the oob()
routine to keep the TIOCPKT_FLUSHWRITE code from being executed.

Change

	int eight;
	
to 
	int eight = 1;

and find the line that says:

 	if(mark & TIOCPKT_FLUSHWRITE) {

and change it to

 	if ( 0 & mark & TIOCPKT_FLUSHWRITE ) {

to disable that part of the oob() code.  I'm not sure exactly what
the ramifications of disabling this are, but the stock Apollo rlogin
hangs in the 'for' loop just after this line, waiting to read
data that's never going to arrive.  We made the above
fix to our rlogin months ago and it hasn't hung since.

Hope this is of some use to someone.

..Steve

-- 
Steve Hayman    Workstation Manager    Computer Science Department   Indiana U.
sahayman@iuvax.cs.indiana.edu                                   (812) 855-6984

weiner@novavax.UUCP (Bob Weiner) (07/11/89)

> So I ftp'd screen2 from an archive site.  It wouldn't compile due to a
> C-compiler feature.
> 
> Some info:
> running sr10.1, bsd4.3, csh

I've had the same problem as Bob using screen2 under the same SR10.1
environment.  Anyone care to comment on how to actually get it to
work?
-- 
Bob Weiner, Motorola, Inc.,   USENET:  ...!gatech!uflorida!novavax!weiner
(407) 738-2087

kts@quintro.uucp (Kenneth T. Smelcer) (07/12/89)

In article <1374@novavax.UUCP> weiner@novavax.UUCP (Bob Weiner) writes:
>> So I ftp'd screen2 from an archive site.  It wouldn't compile due to a
>> C-compiler feature.
>> 
>> Some info:
>> running sr10.1, bsd4.3, csh
>
>I've had the same problem as Bob using screen2 under the same SR10.1
>environment.  Anyone care to comment on how to actually get it to
>work?
>-- 
>Bob Weiner, Motorola, Inc.,   USENET:  ...!gatech!uflorida!novavax!weiner
>(407) 738-2087

Here is a patch for screen2 to get it working under SR10.1.  The major
problem is how screen2 checks to see if another screen process is running.
Since my knowledge of TCP/IP is very limited, I just IFDEFed this test
and now it works fine.  If someone fixes this the right way, please
let me know.  BTW, this patch assumes your running screen2 with Patrick
Wolfe's patches.

=========================================================================

*** Makefile	Wed Jun 28 10:45:41 1989
--- Makefile	Thu Mar 16 00:58:05 1989
***************
*** 5,12 ****
  
  PGM    = screen
  BIN    = /usr/local/bin
! MS     = l
! CFLAGS = -O
  CFILES = screen.c ansi.c
  OFILES = screen.o ansi.o
  
--- 5,12 ----
  
  PGM    = screen
  BIN    = /usr/local/bin
! MS     = 1
! CFLAGS = -O -DAPOLLO
  CFILES = screen.c ansi.c
  OFILES = screen.o ansi.o
  
*** screen.c	Wed Jun 28 10:45:39 1989
--- screen.c	Thu Mar 16 01:07:51 1989
***************
*** 16,21 ****
--- 16,22 ----
  static char ScreenVersion[] = "screen 2.1 3-Mar-1989";
  
  #include <stdio.h>
+ #include <sys/types.h>
  #include <sgtty.h>
  #include <signal.h>
  #include <errno.h>
***************
*** 24,30 ****
  #include <pwd.h>
  #include <nlist.h>
  #include <fcntl.h>
- #include <sys/types.h>
  #include <sys/time.h>
  #include <sys/file.h>
  #include <sys/wait.h>
--- 25,30 ----
***************
*** 1406,1411 ****
--- 1406,1413 ----
      a.sun_family = AF_UNIX;
      strcpy (SockNamePtr, SockName);
      strcpy (a.sun_path, SockPath);
+ 
+ #ifndef APOLLO
      if (connect (s, (struct sockaddr *)&a, strlen (SockPath)+2) != -1) {
  	p = Filename (SockPath);
  	Msg (0, "You have already a screen running on %s.\n\
***************
*** 1412,1417 ****
--- 1414,1421 ----
  If it has been detached, try \"screen -r\".", p);
  	/*NOTREACHED*/
      }
+ 
+ #endif
      (void) unlink (SockPath);
      if (bind (s, (struct sockaddr *)&a, strlen (SockPath)+2) == -1)
  	Msg (errno, "bind");

-- 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Ken Smelcer        Quintron Corp.           quintro!kts@lll-winken 
                   Quincy,  IL              tiamat!quintro!kts@uunet

cantrell@attctc.DALLAS.TX.US (Keith Cantrell) (07/14/89)

In article <1989Jul12.032209.2072@quintro.uucp> kts@quintro.UUCP (Kenneth T. Smelcer) writes:
<In article <1374@novavax.UUCP> weiner@novavax.UUCP (Bob Weiner) writes:
<>> So I ftp'd screen2 from an archive site.  It wouldn't compile due to a
<>> C-compiler feature.
[ .....   stuff deleted   .... ]
<
<Here is a patch for screen2 to get it working under SR10.1.  The major
<problem is how screen2 checks to see if another screen process is running.
<Since my knowledge of TCP/IP is very limited, I just IFDEFed this test
<and now it works fine.  If someone fixes this the right way, please
<let me know.  BTW, this patch assumes your running screen2 with Patrick
<Wolfe's patches.
<
<=========================================================================
<
<*** Makefile	Wed Jun 28 10:45:41 1989
<--- Makefile	Thu Mar 16 00:58:05 1989
<***************
<*** 5,12 ****
<  
<  PGM    = screen
<  BIN    = /usr/local/bin
<! MS     = l
<! CFLAGS = -O
<  CFILES = screen.c ansi.c
<  OFILES = screen.o ansi.o
<  
<--- 5,12 ----
<  
<  PGM    = screen
<  BIN    = /usr/local/bin
<! MS     = 1
<! CFLAGS = -O -DAPOLLO
You do not need to do this.  Apollo already defines "apollo".
This is helpfull when porting code to the Apollo, since you can always depend
on it being there even if you do not specify it.

Type at you later,

Keith

-----------------------------------------------------------------------
Keith Cantrell                Phones:  hm: 214-492-1088
Apollo Computer                        wk: 214-519-2399

USMAIL:                       EMAIL:
2100 Sonata Ln                cantrell@attctc.DALLAS.TX.US
Carrollton TX 75007                   or
                              ...!uunet!digi!cantrell           
-----------------------------------------------------------------------