[前][次][番号順一覧][スレッド一覧]

ruby-changes:9661

From: akr <ko1@a...>
Date: Tue, 30 Dec 2008 21:19:58 +0900 (JST)
Subject: [ruby-changes:9661] Ruby:r21202 (trunk): * ext/socket/mkconstants.rb: use sock_define_uconst for INADDR_*

akr	2008-12-30 21:19:40 +0900 (Tue, 30 Dec 2008)

  New Revision: 21202

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=21202

  Log:
    * 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.

  Modified files:
    trunk/ChangeLog
    trunk/ext/socket/mkconstants.rb
    trunk/ext/socket/socket.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 21201)
+++ ChangeLog	(revision 21202)
@@ -1,3 +1,11 @@
+Tue Dec 30 21:17:00 2008  Tanaka Akira  <akr@f...>
+
+	* 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@z...>
 
 	* lib/minitest/*.rb: Imported minitest 1.3.1 r4506.
Index: ext/socket/mkconstants.rb
===================================================================
--- ext/socket/mkconstants.rb	(revision 21201)
+++ ext/socket/mkconstants.rb	(revision 21202)
@@ -7,11 +7,16 @@
 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
Index: ext/socket/socket.c
===================================================================
--- ext/socket/socket.c	(revision 21201)
+++ ext/socket/socket.c	(revision 21202)
@@ -3557,7 +3557,16 @@
     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

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]