Linemode again
Howard Chu
hyc at symas.com
Thu Aug 19 18:55:53 EST 2010
My Linux kernel patches for linemode support have been pulled into the 2.6.36
release stream, so I figure it's time to finish up the work on openssh, bash,
tcsh, readline, libedit, and anything else that comes along. As I last wrote here
http://wiki.github.com/hyc/OpenSSH-LINEMODE/
I've got a few open issues remaining...
First, I re-organized muxed session handling such that all terminal input is
handled by each ssh process, instead of being handled by the single connection
manager process. This was the cleanest way to divide the labor since the
various readline/edit libraries all assume global state and don't lend
themselves to having their input multiplexed. I still left terminal output to
be written directly to each pty by the manager process. I figure this is still
better from a performance perspective; terminal input will generally be very
low bandwidth but terminal output may be higher volume and always relaying it
back to the mux client first might become a bottleneck.
But... this approach is making it harder to handle command-line completion.
The idea is that the ssh client will know it should perform completion if the
client and server both support linemode, linemode is active, and the remote
tty has a VEOL character set to TAB. In that case, when the user types a
completion character, the current line plus the tab will be sent to the
remote, and the remote editor library will send back the list of possible
completions. Then the local client's line editor library will take care of
displaying these completions in whatever fashion it normally does. The problem
is, that then means for muxed clients I need the session output to be parsed
by the mux client, instead of being dumped directly to its pty. Alternatively,
I could introduce new channel commands for completion-request and
completion-reply, so that these events can be treated specially regardless of
the mux architecture.
Any suggestions? And has anyone reviewed the code I've committed to this git
repo so far, and got any comments on that?
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
More information about the openssh-unix-dev
mailing list