[Mew-dist 15868] POP/SSHでネットワークが切れているとき

KOIE Hidetaka ( 鯉江英隆 ) hide at example.com
2001年 1月 12日 (金) 14:38:57 JST


ネットワークカード(pccard)が抜けているときにSSHを実行するとこうなります。
#OpenSSHのバージョンは古いです。
━━━━━━━━━━━━━━ここから━━━━━━━━━━━━━━
% ssh -x -v -o "ConnectionAttempts=1" neos
SSH Version OpenSSH_2.2.0p1, protocol versions 1.5/2.0.
Compiled with SSL (0x0090581f).
debug: Reading configuration data /usr/home/koie/.ssh/config
debug: Reading configuration data /etc/ssh/ssh_config
debug: Applying options for *
debug: Seeding random number generator
debug: ssh_connect: getuid 1102 geteuid 1102 anon 1
debug: Connecting to XXX [1.1.1.1] port 22.
debug: connect: No route to host
Secure connection to XXX on port 22 refused.                    <=注目
%
━━━━━━━━━━━━━━ここまで━━━━━━━━━━━━━━

Etherケーブルを抜いた場合はこのようになります。
━━━━━━━━━━━━━━ここから━━━━━━━━━━━━━━
% ssh -x -v -o "ConnectionAttempts=1" neos
SSH Version OpenSSH_2.2.0p1, protocol versions 1.5/2.0.
Compiled with SSL (0x0090581f).
debug: Reading configuration data /usr/home/koie/.ssh/config
debug: Reading configuration data /etc/ssh/ssh_config
debug: Applying options for *
debug: Seeding random number generator
debug: ssh_connect: getuid 1102 geteuid 1102 anon 1
debug: Connecting to XXX [1.1.1.1] port 22.
debug: connect: Operation timed out
Secure connection to XXX on port 22 refused.                    <=注目
% 
━━━━━━━━━━━━━━ここまで━━━━━━━━━━━━━━

この最後の行のメッセージを mew-ssh-filter で捕捉しないと
ユーザはいつまで待ったらいいのかわからないです。
━━━━━━━━━━━━━━ここから━━━━━━━━━━━━━━
diff -pu -F^( mew-1.95b97.org/mew-ssh.el mew-1.95b97/mew-ssh.el
--- mew-1.95b97.org/mew-ssh.el	Mon Jan  8 20:12:49 2001
+++ mew-1.95b97/mew-ssh.el	Fri Jan 12 14:20:15 2001
@@ -28,6 +28,9 @@ (defconst mew-ssh-msg-connected
 (defconst mew-ssh-msg-denyed
   '("Permission denied\\." "Permission denied\\." "Permission denied\\."))
 
+(defconst mew-ssh-msg-refused
+  '("" "" "Secure connection .* refused\\."))
+
 (defconst mew-ssh-process-exec-cnt 3)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -170,7 +173,9 @@ (defun mew-ssh-filter (process string)
 	    (process-send-string process (concat pass "\n")))
 	(mew-passwd-set-passwd (mew-ssh-passtag pnm) nil)
 	(message "Can't find ssh process")))
-     ((string-match (mew-ssh-get mew-ssh-msg-denyed) string)
+     ((or
+       (string-match (mew-ssh-get mew-ssh-msg-denyed) string)
+       (string-match (mew-ssh-get mew-ssh-msg-refused) string))
       (message "Can't connect to the SSH server")
       (mew-passwd-set-passwd (mew-ssh-passtag pnm) nil)
       (mew-ssh-set-status pnm 'denied))
━━━━━━━━━━━━━━ここまで━━━━━━━━━━━━━━

サーバに到達できない場合に
ユーザがC-gでI(mew-summary-get)をquitしても
sshプロセスが残ったままのようです。(もちろんそのうち消えます)

--
KOIE Hidetaka 鯉江英隆 <hide at example.com>



Mew-dist メーリングリストの案内