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