[mew-dist 25432] Re: Fedora Core 2 + stunnel 3.26で送受信できない

Kazu Yamamoto ( 山本和彦 ) kazu at example.com
2004年 10月 7日 (木) 14:44:19 JST


> /usr/local/sbin/stunnel -c -f -a $HOME/.certs -d localhost:10001 -v 1 -D debug -P none -r smtp.comcast.net:465 &
<略>
> のように指定しています。
> (同様に POP 用にもう一つ 10002 番ポートで stunnel を起動しています。)

なるほど。

> 恥ずかしながら、以前バージョン 4 を使おうとして設定方法がわからず挫折して
> 以来、わざわざバージョン 3 を使うようにしていました。

Mew は /tmp の下に stunnel 4 用のファイルを作りますので、それを盗めば
使えるようになると思います。:)

> 今 Fedora Core 2 にもともと入っているバージョン 4.05 を試してみたところ
> 何もせずに使えそうだったのですが、残念ながら送信できない症状は同じです。
> 念のため 4.05 の場合の mew-debug のログを添付します。

ログを見る限り、ダミーコネクションを切ると、SSL トンネルも終了してしまっ
ているように見えます。

まず前提として、stunnel が作った SSL トンネルには、複数のコネクションを
通すことができます。コマンドラインで stunnel を起動し、
	telnet localhost 指定したポート
を複数回起動しても問題がないということです。

stunnel は起動時には SSL トンネルを構築しません。何らかのコネクションを
受け付けた後に、ようやく SSL トンネルを張ります。

stunnel を起動しただけでは SSL トンネルの確立は保証されないので、Mew は
最初にダミーのコネクションを張り、SSL トンネルを作らせます。そして、
そのダミーコネクションを切ります。

この時点で、SSL トンネルはまだ生きており、次のコネクションを受付けるよ
うになっているのが正常な動作です。

前述のように、ここで SSL トンネルが切れるのが問題です。

なので、

(1) コマンドラインで stunnel を起動し、複数回 telnet をして、複数のコネ
    クションを受付けるか確認して下さい。

(2) 以下のパッチを当ると、ダミーコネクションを切らなくなります。これで、
    Mew から stunnel が使えるようになるか確認して下さい。ちなみに、これ
    は実験のためのパッチであって、本質的に問題を解決してはいません。

--かず

Index: mew-ssl.el
===================================================================
RCS file: /cvsroot/mew/mew/mew-ssl.el,v
retrieving revision 1.20
diff -c -r1.20 mew-ssl.el
*** mew-ssl.el	25 Aug 2004 01:23:37 -0000	1.20
--- mew-ssl.el	7 Oct 2004 05:33:29 -0000
***************
*** 161,167 ****
  	  (set-process-filter pro 'mew-ssl-filter2)
  	  (setq dummy (open-network-stream " *Mew dummy*" nil "localhost" localport))
  	  (mew-rendezvous (null (mew-ssl-get-status pnm)))
! 	  (if (processp dummy) (delete-process dummy))
  	  (if (eq (mew-ssl-get-status pnm) t)
  	      (progn
  		(message "Creating an SSL connection...done")
--- 161,167 ----
  	  (set-process-filter pro 'mew-ssl-filter2)
  	  (setq dummy (open-network-stream " *Mew dummy*" nil "localhost" localport))
  	  (mew-rendezvous (null (mew-ssl-get-status pnm)))
! ;;	  (if (processp dummy) (delete-process dummy))
  	  (if (eq (mew-ssl-get-status pnm) t)
  	      (progn
  		(message "Creating an SSL connection...done")






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