summaryrefslogtreecommitdiff
path: root/ext/socket/mkconstants.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/socket/mkconstants.rb')
-rw-r--r--ext/socket/mkconstants.rb19
1 files changed, 16 insertions, 3 deletions
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