summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ext/socket/mkconstants.rb19
-rw-r--r--ext/socket/socket.c4
3 files changed, 21 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 28866c2485..e22739c077 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jan 1 16:03:04 2009 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/mkconstants.rb (Socket::AF_INET6): moved from socket.c.
+ (Socket::PF_INET6): ditto.
+
Thu Jan 1 15:27:07 2009 Tanaka Akira <akr@fsij.org>
* ext/socket/mkconstants.rb: use erb.
diff --git a/ext/socket/mkconstants.rb b/ext/socket/mkconstants.rb
index d74310cb34..02d7e17b77 100644
--- a/ext/socket/mkconstants.rb
+++ b/ext/socket/mkconstants.rb
@@ -43,19 +43,30 @@ def each_data
else
define = "sock_define_const"
end
- yield define, name, default_value
+ guard = nil
+ if /\A(AF_INET6|PF_INET6)\z/ =~ name
+ # IPv6 is not supported although AF_INET6 is defined on bcc32/mingw
+ guard = "defined(INET6)"
+ end
+ yield guard, define, name, default_value
}
end
result << ERB.new(<<'EOS', nil, '%').result(binding)
-% each_data {|define, name, default_value|
-#ifdef <%=name%>
+% each_data {|guard, define, name, default_value|
+% if guard
+#if <%=guard%>
+% end
+#if defined(<%=name%>)
<%=define%>(<%=c_str name%>, <%=name%>);
% if default_value
#else
<%=define%>(<%=c_str name%>, <%=default_value%>);
% end
#endif
+% if guard
+#endif
+% end
% }
EOS
@@ -79,6 +90,8 @@ SOCK_PACKET
AF_INET
PF_INET
+AF_INET6
+PF_INET6
AF_UNIX
PF_UNIX
AF_AX25
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index 11976b01a4..b91e1396cd 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -3733,8 +3733,4 @@ Init_socket()
/* constants */
mConst = rb_define_module_under(rb_cSocket, "Constants");
#include "constants.h"
-#ifdef INET6 /* IPv6 is not supported although AF_INET6 is defined on bcc32/mingw */
- sock_define_const("AF_INET6", AF_INET6);
- sock_define_const("PF_INET6", PF_INET6);
-#endif
}