diff options
| author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-01 06:41:54 +0000 |
|---|---|---|
| committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-01 06:41:54 +0000 |
| commit | 13ba4cd3417c2ca73c622b4bb11c5d7f2c82beba (patch) | |
| tree | db960581ccefa43b23a1be51387c35a5feb8af3e | |
| parent | be0ac890f6b24d1b608c96a32eb6e453e78dee62 (diff) | |
| download | ruby-13ba4cd3417c2ca73c622b4bb11c5d7f2c82beba.tar.gz ruby-13ba4cd3417c2ca73c622b4bb11c5d7f2c82beba.tar.xz ruby-13ba4cd3417c2ca73c622b4bb11c5d7f2c82beba.zip | |
merges r21202 from trunk into ruby_1_9_1.
* ext/socket/mkconstants.rb: use sock_define_uconst for INADDR_*
constants because Socket::INADDR_LOOPBACK should be 0x7f000001
instead of -0xffffff.
* ext/socket/socket.c (sock_define_uconst): defined.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@21226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 8 | ||||
| -rw-r--r-- | ext/socket/mkconstants.rb | 9 | ||||
| -rw-r--r-- | ext/socket/socket.c | 9 |
3 files changed, 24 insertions, 2 deletions
@@ -1,3 +1,11 @@ +Tue Dec 30 21:17:00 2008 Tanaka Akira <akr@fsij.org> + + * ext/socket/mkconstants.rb: use sock_define_uconst for INADDR_* + constants because Socket::INADDR_LOOPBACK should be 0x7f000001 + instead of -0xffffff. + + * ext/socket/socket.c (sock_define_uconst): defined. + Tue Dec 30 18:23:10 2008 Ryan Davis <ryand-ruby@zenspider.com> * lib/minitest/*.rb: Imported minitest 1.3.1 r4506. diff --git a/ext/socket/mkconstants.rb b/ext/socket/mkconstants.rb index bb0525080..589e3b2bb 100644 --- a/ext/socket/mkconstants.rb +++ b/ext/socket/mkconstants.rb @@ -7,11 +7,16 @@ $out.puts("#define pseudo_AF_FTIP pseudo_AF_RTIP") DATA.each_line do |s| name, value = s.scan(/\S+/) if name && name[0] != ?# + if name =~ /\AINADDR_/ + define = "sock_define_uconst" + else + define = "sock_define_const" + end $out.puts("#ifdef #{name}") - $out.puts(" sock_define_const(\"#{name}\", #{name});") + $out.puts(" #{define}(\"#{name}\", #{name});") if value $out.puts("#else") - $out.puts(" sock_define_const(\"#{name}\", #{value});") + $out.puts(" #{define}(\"#{name}\", #{value});") end $out.puts("#endif") $out.puts diff --git a/ext/socket/socket.c b/ext/socket/socket.c index a8b53bd53..c8d55cf37 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -3555,7 +3555,16 @@ sock_define_const(const char *name, int value, VALUE mConst) rb_define_const(rb_cSocket, name, INT2FIX(value)); rb_define_const(mConst, name, INT2FIX(value)); } + +static void +sock_define_uconst(const char *name, unsigned int value, VALUE mConst) +{ + rb_define_const(rb_cSocket, name, UINT2NUM(value)); + rb_define_const(mConst, name, UINT2NUM(value)); +} + #define sock_define_const(name, value) sock_define_const(name, value, mConst) +#define sock_define_uconst(name, value) sock_define_uconst(name, value, mConst) /* * Class +Socket+ provides access to the underlying operating system |
