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

ruby-changes:10437

From: nobu <ko1@a...>
Date: Tue, 3 Feb 2009 07:59:28 +0900 (JST)
Subject: [ruby-changes:10437] Ruby:r21985 (trunk): * ext/socket/extconf.rb (in_pktinfo, in6_pktinfo),

nobu	2009-02-03 07:58:03 +0900 (Tue, 03 Feb 2009)

  New Revision: 21985

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

  Log:
    * ext/socket/extconf.rb (in_pktinfo, in6_pktinfo),
      ext/socket/ancdata.c: defined in w32api/ws2tcpip.h on cygwin but
      cannot compile for some reason.

  Modified files:
    trunk/ChangeLog
    trunk/ext/socket/ancdata.c
    trunk/ext/socket/extconf.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 21984)
+++ ChangeLog	(revision 21985)
@@ -1,3 +1,9 @@
+Tue Feb  3 07:57:58 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* ext/socket/extconf.rb (in_pktinfo, in6_pktinfo),
+	  ext/socket/ancdata.c: defined in w32api/ws2tcpip.h on cygwin but
+	  cannot compile for some reason.
+
 Tue Feb  3 07:02:11 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* missing/langinfo.c (nl_langinfo_codeset): accepts iso-8859
Index: ext/socket/extconf.rb
===================================================================
--- ext/socket/extconf.rb	(revision 21984)
+++ ext/socket/extconf.rb	(revision 21985)
@@ -299,6 +299,14 @@
 
 have_header("sys/un.h")
 have_header("sys/uio.h")
+have_type("struct in_pktinfo") {|src|
+  src.sub(%r'^/\*top\*/', '\1'"\n#if defined(IPPROTO_IP) && defined(IP_PKTINFO)") <<
+  "#else\n" << "#error\n" << ">>>>>> no in_pktinfo <<<<<<\n" << "#endif\n"
+}
+have_type("struct in6_pktinfo") {|src|
+  src.sub(%r'^/\*top\*/', '\1'"\n#if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO)") <<
+  "#else\n" << "#error\n" << ">>>>>> no in6_pktinfo <<<<<<\n" << "#endif\n"
+}
 
 $distcleanfiles << "constants.h" << "constdefs.*"
 
Index: ext/socket/ancdata.c
===================================================================
--- ext/socket/ancdata.c	(revision 21984)
+++ ext/socket/ancdata.c	(revision 21985)
@@ -188,7 +188,7 @@
 static VALUE
 ancillary_s_ip_pktinfo(VALUE self, VALUE v_addr, VALUE v_ifindex, VALUE v_spec_dst)
 {
-#if defined(IPPROTO_IP) && defined(IP_PKTINFO) /* GNU/Linux */
+#if defined(IPPROTO_IP) && defined(IP_PKTINFO) && defined(HAVE_TYPE_STRUCT_IN_PKTINFO) /* GNU/Linux */
     unsigned int ifindex;
     struct sockaddr_in sa;
     struct in_pktinfo pktinfo;
@@ -226,7 +226,7 @@
 static VALUE
 ancillary_ip_pktinfo(VALUE self)
 {
-#if defined(IPPROTO_IP) && defined(IP_PKTINFO) /* GNU/Linux */
+#if defined(IPPROTO_IP) && defined(IP_PKTINFO) && defined(HAVE_TYPE_STRUCT_IN_PKTINFO) /* GNU/Linux */
     int level, type;
     VALUE data;
     struct in_pktinfo pktinfo;
@@ -397,7 +397,7 @@
 }
 #endif
 
-#if defined(IPPROTO_IP) && defined(IP_PKTINFO) /* GNU/Linux */
+#if defined(IPPROTO_IP) && defined(IP_PKTINFO) && defined(HAVE_TYPE_STRUCT_IN_PKTINFO) /* GNU/Linux */
 static int
 anc_inspect_ip_pktinfo(int level, int type, VALUE data, VALUE ret)
 {
@@ -426,7 +426,7 @@
 }
 #endif
 
-#if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO) /* IPv6 RFC3542 */
+#if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO) && defined(HAVE_TYPE_STRUCT_IN6_PKTINFO) /* IPv6 RFC3542 */
 static int
 anc_inspect_ipv6_pktinfo(int level, int type, VALUE data, VALUE ret)
 {
@@ -508,7 +508,7 @@
 #        if defined(IP_RECVDSTADDR) /* 4.4BSD */
           case IP_RECVDSTADDR: if (anc_inspect_ip_recvdstaddr(level, type, data, ret) == -1) goto dump; break;
 #        endif
-#        if defined(IP_PKTINFO) /* GNU/Linux */
+#        if defined(IP_PKTINFO) && defined(HAVE_TYPE_STRUCT_IN_PKTINFO) /* GNU/Linux */
           case IP_PKTINFO: if (anc_inspect_ip_pktinfo(level, type, data, ret) == -1) goto dump; break;
 #        endif
           default: goto dump;

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

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