From: nobu.nakada@... Date: 2003-08-16T14:17:39+09:00 Subject: [ruby-list:38123] Re: ポートが閉じているときの例外など なかだです。 At Sat, 16 Aug 2003 01:56:57 +0900, Takahiro Kambe wrote: > non blocking モードでconnect(2)エラーでEINPROGRESSだった場合ですが、 > > ほんとうはエラーではなかった場合は、続けてconnect(2)を呼んでエラーで > EALREADYとなるか、そのうち成功することになります。 > > 実はエラーだった場合は、getsockopt(2)をSOL_SOCKETレベルとSO_ERRORで呼 > び出してエラーの状態を取得するとECONNREFUSEDだったとわかります。しかし、 > 続けてconnect(2)を呼ぶとEINVALになって、ほんとうの理由はわかりません。 SO_ERRORでerrnoを調べるというのは、今でもやってるんですが、これ がEINVALだけではなくてEINPROGRESSのときにも必要ということでしょ うか。 revision 1.93 date: 2003/05/16 15:18:14; author: nobu; state: Exp; lines: +35 -14 * ext/socket/socket.c (ruby_connect): connect() after EINPROGRESS returns EINVAL on some platforms, need to check true error status. [ruby-core:01037] -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦