diff options
author | khm <devnull@localhost> | 2017-01-12 16:36:38 -0800 |
---|---|---|
committer | khm <devnull@localhost> | 2017-01-12 16:36:38 -0800 |
commit | dc8c7bf2b73d608ac2483aee303a51a3507b4c5a (patch) | |
tree | f8c69dbf5f36de6f9acea724f2068054b5b8e7a6 /rc | |
parent | cb1555c7d741fa482c339aa9ac8a44753e2ad296 (diff) |
ssh: R.I.P.
Diffstat (limited to 'rc')
-rwxr-xr-x | rc/bin/srvssh | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/rc/bin/srvssh b/rc/bin/srvssh deleted file mode 100755 index 8a57125a7..000000000 --- a/rc/bin/srvssh +++ /dev/null @@ -1,101 +0,0 @@ -#!/bin/rc - -# Serve Unix u9fs over SSH -# -# Basically, try each of the following until you find one that works: -# -# srvssh unix -# srvssh -r unix -# srvssh -R unix -# srvssh -r -s unix -# srvssh -R -s unix -# -# and then never look back. Note that "srvssh unix" should always -# work. It's just that if you're talking with certain sshd's, you'll get -# hit by Nagle's algorithm and need to explore the other flags. - -# When using ssh to start u9fs, the only way to turn off -# Nagle's algorithm (which kills the performance of RPC-based -# protocols like 9P) is to allocate a pseudo-terminal. The -# command ssh -Rmp attempts to allocate a pseudo-terminal and -# then put it in a transparent mode. Especially when -# connected to older SSH daemons, the connection ends up not -# quite transparent. To get around this, we explicity set the tty -# mode on the command line as well. The hope is that -Rmp makes -# the connection transparent enough for the Tversion, and the stty -# command will do the rest. If -Rmp doesn't make the connection -# transparent enough for the Tversion (but the stty commands do -# make the connection fully transparent) then add "-s 5" to the srv -# command to tell it to wait 5 seconds before sending the Tversion. -# That should be enough time for the stty to take effect. - -rfork e - -fn usage { - echo 'usage: srvssh [-R] [-r] [-s] [-u u9fspath] system [srvname [mtpt]]' >[1=2] - exit usage -} - -rawhack='' -sleephack=() -u9fspath=u9fs -rawflags='' - -while(~ $1 -*){ - switch($1){ - case -r - rawflags='-Rmp' - shift - case -R - rawflags='-Rmp' - rawhack=('stty raw -echo '';''') - shift - case -s - sleephack=(-s 5) - shift - case -u - shift - u9fspath=$1 - shift - case -u* - u9fspath=`{echo $1 | sed s/-u//} - shift - case * - usage - } -} - -if(! ~ $#* 1 2 3) - usage - -switch($#*){ -case 1 - srv=$1 - mtpt=/n/$1 -case 2 - srv=$2 - mtpt=/n/$1 -case 3 - srv=$2 - mtpt=$3 -} - -x=(srv $sleephack -e \ - 'ssh '$rawflags' '$1' '$rawhack' '$u9fspath' -na none -u ''$''USER -l ''$''HOME/u9fs.log' \ - $srv $mtpt) -$x - -# Sometimes /srv/whatever can be a closed pipe, in which case -# srv will have been killed for writing to it, without a chance to -# defend itself. Rerun it in this case. - -ss=$status -if(~ $ss *'write on closed pipe'*){ - rm -f /srv/$srv - $x - ss=$status -} - -if(! ~ $ss '') - echo srvssh: $ss >[1=2] -exit $ss |