Local software flow control
Grigoriy A. Sitkarev
sitkarev at komitex.ru
Sun Dec 10 10:17:43 EST 2006
Good day time!
Using openssh with a serial attached terminal figures with a problem
with flow control when serial terminal has printer connected to it etc.
because ssh disables xon/xoff on associated terminal. At present ssh
client always disables xon/xoff on associated terminal device, regarding
of it's previous state, e.g. ixon and ixoff options were set or not.
By searching the google i've found some posts where people complained
about sshing somewhere and getting disabled xon/xoff on their devices
and thus they had to use rlogin because it handles local flow control
correctly for them. An easy and quick/dirty method was to remove IXON &
IXOFF flags from sshtty.c:enter_raw_mode(), but it can easily brake
transparency. Another standart method to use was a must.
According to IETF RFC4254 ssh server can provide client an idea of doing
the control flow at the client side. A special SSH_MSG_CHANNEL_REQUEST
message with "xon-xoff" string MUST be used, and client MAY ignore this
message. This feature is not implemented in OpenSSH, nor in client nor
in the server.
As we have a great need in using software flow control on the local side
with ssh connection to server, i have decided to implement these options
in ssh server and client. The patch must be applied to the openssh 4.5p1
release.
The patch adds two boolean options in ssh and sshd correspondingly
"IgnoreFlowControl" and "UseFlowControl". Defaults don't change the
usual behaviour of neither ssh and sshd.
When "IgnoreLocalFlow" is set to "no" within ssh client, it handles
"xon-xoff" message from sshd and enables or disables local flow control
ONLY if it was previously set before ssh was started and associated with
terminal device. If no ixon or ixoff option was set on terminal device
everything is left as is.
When UseLocalFlow is set to "yes" within sshd server, it requests to
enable "xon-xoff" after the client's request of pty allocation succeeds.
Now we can use printers attached to serial terminals and other devices.
In spite of the reason, that patch works well for me, i suppose it might
be better but i need developers advice.
Best wishes,
Grigoriy A. Sitkarev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: openssh-4.5p1_localflow.patch
Type: text/x-patch
Size: 6127 bytes
Desc: not available
Url : http://lists.mindrot.org/pipermail/openssh-unix-dev/attachments/20061209/24d3faab/attachment.bin
More information about the openssh-unix-dev
mailing list