(toppers-users 2911) Re: TINET による PPP 接続時の切断について

阿部 司 abe @ jo.tomakomai-ct.ac.jp
2009年 4月 1日 (水) 15:15:14 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() がブロックされずに処理が終わりました。
> が・・・やはりモデムは切断されず・・・。

SMTP サーバには詳しくは無いため、不明なのですが、
サーバからは TCP の切断を行っていないようですね。

>  (PPP と)モデムの接続を、最も理にかなった方法で切断して電話を切る処理を
> 御伝授頂けないでしょうか? 下記に SYSYLOG を添付させていただきます。
> 現在は、単に tcp_sht_cep() と tcp_cls_cep() を呼び出しているだけです。

TCP を切断しても、LCP (PPP) レベルでは接続状態ですので、
lcp_close() を呼び出す必要があると思います。
tinet/netapp/dbg_cons.c の 1884 行目付近のコードを参考にしてください。

-- 
.\" 苫小牧工業高等専門学校 情報工学科 教授 阿部 司
.\" 〒059-1275 北海道苫小牧市字錦岡443番地
.\" E-mail: abe @ jo.tomakomai-ct.ac.jp  TEL/FAX: 0144-67-8937