XON/XOFF problems and questions

lars%acc at sri-unix.UUCP lars%acc at sri-unix.UUCP
Sun Dec 11 03:32:02 AEST 1983


e is that it must work!

What you are describing is a lot like transparent BiSynC; this is'
certainly a workable way to achieve character transparency, but this
is a technique normally used in an asynchronous ASCII environment;
imposing such a convention on a multitude of equipment at this late
time is not feasible.

I can suggest a much simpler way out of your problem; stick by the
following two rules:

1. When using XON/XOFF for flow control, these two characters are
   not available as data characters.
   Since the terminal will not send them unless you hit the keys,
   what this really means, is that the terminal driver on your system
   must discard any ^S characters (and preferably also ^Q) sent
   by a program in cooked mode.
2. In a network environment, all flow control is hop-by-hop.
   I.e. ^S and ^Q are processed at each hop and not forwarded.

	An example of this is to write a C program which outputs
	across data communication lines a ^S (DC3) from the computer
	to a terminal.  Most terminals such as VT100's interpet (sic)
	this as flow control and wait for the host buffers to free up
	(which will never happen since the host REALLY did not send 
	it as that.
	If the user is on a direct or modem line, simply resets his
	terminal and off he goes.  This is violating the convention.
	Also this will not work with various LANS and Multiplexors as
	if you define that this gear uses XON/XOFF the capture the 
	data and do not pass it down the net.  This is correct as they
	should protect their buffers as well.  If you run your C program
	or cat down that file with a Control S in it with XON/XOFF
	defined then you wind up hanging a port until you reset your
	data communications equiptment.

If your equipment is standard, then resetting your terminal (by 
cycling power or hitting SETUP/RESET on a VT1xx) will
cause it to momentarily drop its DTR signal. On a modem link or a 
virtual circuit of an LAN, this should cause a circuit disconnect;
on a direct link, this should cause a forced logout.
In either case, it is true, it will also clear the hung line.



More information about the Comp.unix.wizards mailing list