(toppers-users 2907) Re: TINET による PPP 接続時の切断について
Manabu Tanabe
m_tanabe @ na.rim.or.jp
2009年 3月 30日 (月) 11:26:09 JST
阿部 様
田辺@名古屋です。
お世話になっております。
御返信有難う御座います。お手数をお掛けして申し訳ありません。
小生も NUM_TCP_TW_CEP_ENTRY は気になっていましたので、
TINET ライブラリに付属の nserv を参考に tinet_app_config.h に
#if defined(USE_TCP_MSS_SEG)
#define NUM_TCP_TW_CEP_ENTRY 3
#else
#define NUM_TCP_TW_CEP_ENTRY 6
#endif
と定義はしているのですが・・・。どうも言うことを聞いてくれません。
SMTP サーバとの通信となりますので、QUIT コマンドを送信後、
サーバ側でもソケットをクローズする処理をしているはずで、
クライアント側でも tcp_sht_cep() と tcp_cls_cep() を呼び出しているので、
ソケットのステータスが TIME_WAIT になる場合があると思います。
そこで、QUIT コマンドを送信せず、ソケットをこちらから切断すると、
tcp_sht_cep() と tcp_cls_cep() がブロックされずに処理が終わりました。
が・・・やはりモデムは切断されず・・・。
(PPP と)モデムの接続を、最も理にかなった方法で切断して電話を切る処理を
御伝授頂けないでしょうか? 下記に SYSYLOG を添付させていただきます。
現在は、単に tcp_sht_cep() と tcp_cls_cep() を呼び出しているだけです。
---------- SYSYLOG ここから ----------
[NET/TIMER:3] started.
[PPP OUTPUT:5] started.
[TCP OUTPUT:4] started.
call send_mail().
CONNECT
[MODEM] dial: 057000????.
[MODEM] up.
[PPP/LCP] unexp opt: 19.
[PPP] up.
[PPP/IPCP] unexp opt: 2.
[PPP/IPCP] up, Local IP Addr: ???.???.45.65, Remote IP Addr: 0.0.0.0.
SEND MAIL
<この間、暫く時間が経過...>
[PPP] idel 180 [s], disconnecting.
[PPP/IPCP] down.
[PPP] down.
[MODEM] down.
---------- SYSYLOG ここまで ----------
> これは、TCP の仕様です。tinet/doc/tinet.pdf の 16ページ
>
> 「5.1 タスクからの Time Wait 状態の TCP 通信端点分離機能」
>
> を参照してください。
>
> NUM_TCP_TW_CEP_ENTRY
>
> にエントリ数を設定してみてください。
>
> > その後、tcp_cls_cep() から制御は戻ってきますが、実際にモデムが切断されるのは、
> > 更にそこから2分ほど経過して、ppp.c の idle_timeout() で 180 秒?の
> > アイドルタイムアウトが発生してからになります。
>
> 残念ながら、こちらの方は情報不足で、状況がわかりません。
>
> よろしくお願いします。
>
> --
> .\" 苫小牧工業高等専門学校 情報工学科 教授 阿部 司
> .\" 〒059-1275 北海道苫小牧市字錦岡443番地
> .\" E-mail: abe @ jo.tomakomai-ct.ac.jp TEL/FAX: 0144-67-8937
以上、よろしくお願いいたします。
-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-
E-mail : m_tanabe @ na.rim.or.jp
-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-