ruby-changes:32588
From: akr <ko1@a...>
Date: Tue, 21 Jan 2014 04:32:07 +0900 (JST)
Subject: [ruby-changes:32588] akr:r44667 (trunk): * ext/socket/option.c: Use "int" for IP_MULTICAST_LOOP and
akr 2014-01-21 04:32:03 +0900 (Tue, 21 Jan 2014) New Revision: 44667 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=44667 Log: * ext/socket/option.c: Use "int" for IP_MULTICAST_LOOP and IP_MULTICAST_TTL on Mac OS X. Modified files: trunk/ChangeLog trunk/ext/socket/option.c trunk/test/socket/test_sockopt.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 44666) +++ ChangeLog (revision 44667) @@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Tue Jan 21 04:27:30 2014 Tanaka Akira <akr@f...> + + * ext/socket/option.c: Use "int" for IP_MULTICAST_LOOP and + IP_MULTICAST_TTL on Mac OS X. + Tue Jan 21 00:39:15 2014 Tanaka Akira <akr@f...> * ext/socket/option.c: Use "byte" as default argument for Index: ext/socket/option.c =================================================================== --- ext/socket/option.c (revision 44666) +++ ext/socket/option.c (revision 44667) @@ -7,7 +7,7 @@ VALUE rb_cSockOpt; https://github.com/ruby/ruby/blob/trunk/ext/socket/option.c#L7 #define CAT(x,y) x##y #define XCAT(x,y) CAT(x,y) -#if defined(__linux__) || defined(__FreeBSD__) +#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) # define TYPE_IP_MULTICAST_LOOP int # define TYPE_IP_MULTICAST_TTL int #else Index: test/socket/test_sockopt.rb =================================================================== --- test/socket/test_sockopt.rb (revision 44666) +++ test/socket/test_sockopt.rb (revision 44667) @@ -34,6 +34,13 @@ class TestSocketOption < Test::Unit::Tes https://github.com/ruby/ruby/blob/trunk/test/socket/test_sockopt.rb#L34 assert_equal(128, sockopt.ipv4_multicast_loop) end + def test_ipv4_multicast_loop_size + expected_size = Socket.open(:INET, :DGRAM) {|s| + s.getsockopt(:IP, :MULTICAST_LOOP).to_s.bytesize + } + assert_equal(expected_size, Socket::Option.ipv4_multicast_loop(0).to_s.bytesize) + end + def test_ipv4_multicast_ttl sockopt = Socket::Option.ipv4_multicast_ttl(128) assert_equal('#<Socket::Option: INET IP MULTICAST_TTL 128>', sockopt.inspect) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/