Forum: Ruby-dev ruby-1.8.7-p72 (mswin32) socket protocol missing

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
arton (Guest)
on 2008-11-13 14:14
(Received via mailing list)
Attachment: win32.diff (0 Bytes)
artonです。

Ruby-1.8.7-p72 
ですが、WSAEnumProtocolsで列挙されないプロトコルがあるた
め、Socket作成に失敗します。1.9.1でも同様だと思います。
具体的には、Vista64(32ビット互換レイヤ上)でAF_INET、PROTO_ICMP、
SOCK_RAWを指定してSocket.newを呼ぶと、上記の組み合わせがWSAEnumProtocols
では返らないため、エラーとなります。
しかし、実際には、WSASocketに対してLPWSAPROTOCOL_INFOパラメータにNULLを
設定すると、期待通りのsocketが作成されます。したがって、WSAEnumProtocols
で見つからなかった場合であっても、LPWSAPROTOCL_INFOにNULLを設定して
WSASocketを呼び出していただけないでしょうか。
パッチを添付します。
テストプログラムとしては、http://svn.arton.no-ip.info/raa/trunk/icmpping/
の、icmpping.rbとpingtest.rbでテストできると思います(Administratorの必
要がありますけど)。

よろしくお願いします。
U.Nakamura (Guest)
on 2008-11-13 14:43
(Received via mailing list)
$B$3$s$K$A$O!"$J$+$`$i(B($B$&(B)$B$G$9!#(B

In message "[ruby-dev:37092] ruby-1.8.7-p72 (mswin32) socket protocol
missing"
    on Nov.13,2008 21:10:43, <removed_email_address@domain.invalid> wrote:
> Ruby-1.8.7-p72 $B$G$9$,!"(BWSAEnumProtocols$B$GNs5s$5$l$J$$%W%m%H%3%k$,$"$k$?(B
> $B$a!"(BSocket$B:n@.$K<:GT$7$^$9!#(B1.9.1$B$G$bF1MM$@$H;W$$$^$9!#(B

trunk$B!"(Bruby_1_9_1$B!"(Bruby_1_8$B$G@hF|=$@5$7$?LdBj$N$3$H$N$h$&$J5$(B
$B$,$7$^$9!#(Br20166$B$G$9!#(B


$B$=$l$G$O!#(B
arton (Guest)
on 2008-11-13 14:59
(Received via mailing list)
arton$B$G$9!#(B

> trunk$B!"(Bruby_1_9_1$B!"(Bruby_1_8$B$G@hF|=$@5$7$?LdBj$N$3$H$N$h$&$J5$(B
> $B$,$7$^$9!#(Br20166$B$G$9!#(B
$B3NG'$7$^$7$?!#F1$8$3$H$G$9$M!#!JK\Ev$O$A$g$C$H0c$C$F!"(B20166$B$@$H(Bproto_buffer
$B$r;XDj$G$-$?$N$K%(%i!<$K$J$C$F$$$k$N$@$+$i!":F;n9T$7$F$b$@$a$J$h$&$J!K(B
This topic is locked and can not be replied to.