rlogin sessions don't handle ^S/^Q in raw mode?

Joaquim Martillo martillo at mit-athena.ARPA
Wed Jan 30 13:47:03 AEST 1985


My  previous  fix  to  the  rlogin  problem was incorrect.  The function
ptyioctl in tty_pty.c should be altered.  I will  send  a  copy  of  the
function if requested via private mail.

diff tty_pty.c tty_pty.c~ is:


424,425c424,425
< caddr_t data;
< dev_t dev;
---
> 	caddr_t data;
> 	dev_t dev;
430d429
< 	register int stop;
432,433d430
< /*	printf("Entering ptyioctl\n");*/
< 
436,438c433,434
< 	{
< 		switch (cmd) 
< 		{
---
> 		switch (cmd) {
> 
441d436
< 			{
443d437
< 			}
445d438
< 			{
447d439
< 			}	
448a441
> 
451d443
< 			{
453d444
< 			}
455d445
< 			{
457d446
< 			}
463d451
< 			{
465d452
< 			}
467d453
< 			{
469d454
< 			}
473d457
< /*			printf("TIOCSETP cmd is %d\n", cmd);*/
475d458
< 			{
477d459
< 			}
480,481d461
< 	}
< /*	printf("Invoking ttioctl\n");*/
484d463
< 	{
486,493c465,468
< 	}	
< 	stop = !(tp->t_flags & RAW);
< /*	printf("The variable stop is %d\n", stop);*/
< 
< 	if (pti->pt_flags & PF_NOSTOP) 
< 	{
< 		if (stop) 
< 		{
---
> 	{ int stop = (tp->t_stopc == ('s'&037) &&
> 		      tp->t_startc == ('q'&037));
> 	if (pti->pt_flags & PF_NOSTOP) {
> 		if (stop) {
499,505c474,481
< 	} 
< 	else if (stop == 0) 
< 	{
< 		pti->pt_send &= ~TIOCPKT_DOSTOP;
< 		pti->pt_send |= TIOCPKT_NOSTOP;
< 		pti->pt_flags |= PF_NOSTOP;
< 		ptcwakeup(tp);
---
> 	} else {
> 		if (stop == 0) {
> 			pti->pt_send &= ~TIOCPKT_DOSTOP;
> 			pti->pt_send |= TIOCPKT_NOSTOP;
> 			pti->pt_flags |= PF_NOSTOP;
> 			ptcwakeup(tp);
> 		}
> 	}



More information about the Comp.bugs.4bsd.ucb-fixes mailing list