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

ruby-changes:15811

From: akr <ko1@a...>
Date: Tue, 11 May 2010 23:10:59 +0900 (JST)
Subject: [ruby-changes:15811] Ruby:r27742 (trunk): * ext/socket/extconf.rb: test IPPROTO_IP and IPPROTO_IPV6 constants.

akr	2010-05-11 23:10:34 +0900 (Tue, 11 May 2010)

  New Revision: 27742

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

  Log:
    * ext/socket/extconf.rb: test IPPROTO_IP and IPPROTO_IPV6 constants.
    
    * ext/socket/mkconstants.rb: define macros for enum.
    
      [ruby-dev:38849]

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

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 27741)
+++ ChangeLog	(revision 27742)
@@ -1,3 +1,11 @@
+Tue May 11 23:07:22 2010  Tanaka Akira  <akr@f...>
+
+	* ext/socket/extconf.rb: test IPPROTO_IP and IPPROTO_IPV6 constants.
+
+	* ext/socket/mkconstants.rb: define macros for enum.
+
+	  [ruby-dev:38849]
+
 Tue May 11 21:53:18 2010  Yusuke Endoh  <mame@t...>
 
 	* test/rake/test_task_arguments.rb: makes ENV empty during tests
Index: ext/socket/mkconstants.rb
===================================================================
--- ext/socket/mkconstants.rb	(revision 27741)
+++ ext/socket/mkconstants.rb	(revision 27742)
@@ -73,11 +73,15 @@
 
 ERB.new(<<'EOS', nil, '%').def_method(Object, "gen_const_decls")
 % each_const {|guard, make_value, name, default_value|
-%   if default_value
-#ifndef <%=name%>
-# define <%=name%> <%=default_value%>
+#if !defined(<%=name%>)
+# if defined(HAVE_CONST_<%=name.upcase%>)
+#  define <%=name%> <%=name%>
+%if default_value
+# else
+#  define <%=name%> <%=default_value%>
+%end
+# endif
 #endif
-%   end
 % }
 EOS
 
Index: ext/socket/extconf.rb
===================================================================
--- ext/socket/extconf.rb	(revision 27741)
+++ ext/socket/extconf.rb	(revision 27742)
@@ -110,6 +110,13 @@
 have_header("netinet/tcp.h") if /cygwin/ !~ RUBY_PLATFORM # for cygwin 1.1.5
 have_header("netinet/udp.h")
 
+%w[
+  IPPROTO_IP
+  IPPROTO_IPV6
+].each {|name|
+  have_const(name, headers)
+}
+
 if (have_func("sendmsg") | have_func("recvmsg")) && /64-darwin/ !~ RUBY_PLATFORM
   # CMSG_ macros are broken on 64bit darwin, because of use of __DARWIN_ALIGN.
   have_struct_member('struct msghdr', 'msg_control', ['sys/types.h', 'sys/socket.h'])

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

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