2006年7月11日

[postfix-jp: 2153] Re: sleep中にコネクションが切断されたことを検出したい

岩本といいます。

On Tue, 11 Jul 2006 15:43:05 +0900
SATOH Kiyoshi wrote:

> > 1. わざとここでVSTREAM_GETC(以下略してgetc)を呼出す
> > 2. if (greet pauseのタイムアウト時間を経過)
> > タイムアウトして続きの処理を行う

> > else /* Greet Pauseで指定した時間より前に何かの処理が行われた */
> > case getcで何かのデータが取れた場合:
> > Improper Pipeliningということで504終了。
> > case getcでデータが取れなかった場合:
> > if (vstream_feofあるいはvstream_ferrorがtrue)
> > 相手が接続を閉じたと判断して接続を終了
> > else
> > getcがなんらかの理由でタイムアウトしたと判断して
> > 経過時間分を減じて2の最初のif文からやりなおし。
>
>  確かにこれならいけそうかも。
>  というか自分もこれに近いことは考えて、でも、なにかデータ取れちゃったと
> きにどうしよう、と思ってやめたんですが、こっちが返して無いうちになんか送っ
> てきてたら504で終了、とすることで、あまり大きな修正にせずにすみますね。

この実装でいった場合、EHLOの応答でpipeliningを通知しないように
smtpd_discard_ehlo_keywordsを設定する必要があります。
また、pipeliningを通知していないのに使ってくる(変な)クライアントもある
ようなので、その点でも注意が必要だと思います。

# 気が付いているとは思いますが、念のため

--
いわもと こういち(sue@xxxxx/sue@xxxxx/sue@xxxxx)
# なるようになれ、明日もイケイケ♪
_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list

投稿者 xml-rpc : 2006年7月11日 16:21
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/39366
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。