[Mew-dist 12231] Re: im-13[5-7] imput error

SAKAI Kiyotaka ksakai at example.com
2000年 2月 2日 (水) 17:17:16 JST


>> In article <200001280839.RAA14483 at example.com>, Koyama Mituru <mkoya at example.com> writes:

>   im-135の時からなのですが、プロバイダに繋いでいない状態で、メール送信操作を
> すると、キューへ行かずに、

>  3807 ?        S      0:03 imput: getaddrinfo(pop.sannet.ne.jp)

> プロセスで止まってしまいます。プロバイダと接続していれば送信されて
> 行きます。im-134は試していません。

まず、上の ps の表示は、alarm() でトラップしている箇所でどこで待ち状態
になっているか表示するためのものですので、以前のバージョンのように 
getaddrinfo ではなくて gethostbyname が表示されるよう、以下のパッチは
当てた方がいいかと思います。

次に、試しに smtp server をホスト名ではなくて IP address で指定すると
どうなるでしょうか? もしこれで問題がなくなれば、gethostbyname() で時
間がかかっているためと原因を切り分けることができます。

その場合、~/.im/Config に DnsTimeout を設定すると gethostbyname() のタ
イムアウト時間を設定できますので、これである程度の調整は可能です。

ただ、以前のバージョンでは DNS のタイムアウトを待つことがなかったとい
う理由がよく分からないのですが…。

>   ソースを追ってもみたのですが、追い切れませんでした。
>   プロバイダに接続されていない状態でのオプションの選択などが変わっ
> たのでしょうか。

コマンドラインから imput を --verbose や --debug オプションを付けて実
行してみると、何か状況がつかめるかと思います。
-- 
酒井 清隆 (E-mail: ksakai at example.com)
-------------- next part --------------
Index: IM/TcpTransaction.pm
===================================================================
RCS file: /home/ksakai/cvsroot/im-137/IM/TcpTransaction.pm,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 TcpTransaction.pm
--- TcpTransaction.pm	2000/02/02 07:50:39	1.1.1.1
+++ TcpTransaction.pm	2000/02/02 07:58:32
@@ -120,7 +120,6 @@
 	    $remoteport = $serv;
 	    $Cur_server = $s;
 	}
-	$0 = progname() . ": getaddrinfo($s)";
 	@he_infos = im_getaddrinfo($s, $remoteport, AF_UNSPEC, SOCK_STREAM);
 	if ($#he_infos < 0) {
 	    im_warn("address unknown for $s\n");
@@ -496,6 +495,7 @@
 	}
     } else {
 	alarm(dns_timeout()) unless win95p();
+	$0 = progname() . ": gethostbyname($node)";
 	($he_name, $he_alias, $he_type, $he_len, @he_addrs)
 	  = gethostbyname($node);
 	alarm(0) unless win95p();


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