summaryrefslogtreecommitdiff
path: root/ext/socket/extconf.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/socket/extconf.rb')
-rw-r--r--ext/socket/extconf.rb12
1 files changed, 7 insertions, 5 deletions
diff --git a/ext/socket/extconf.rb b/ext/socket/extconf.rb
index c83c65cc47..0ad85c5380 100644
--- a/ext/socket/extconf.rb
+++ b/ext/socket/extconf.rb
@@ -1,6 +1,6 @@
require 'mkmf'
$LDFLAGS = "-L/usr/local/lib" if File.directory?("/usr/local/lib")
-$CFLAGS ||= ""
+$CFLAGS = "-Dss_family=__ss_family -Dss_len=__ss_len"
case PLATFORM
when /mswin32/
@@ -100,7 +100,7 @@ EOF
end
if $ipv6lib
- if File.directory? $ipv6libdir and File.exist? "#{$ipv6libdir}/#{ipv6lib}.a"
+ if File.directory? $ipv6libdir and File.exist? "#{$ipv6libdir}/lib#{$ipv6lib}.a"
$LDFLAGS += " -L#$ipv6libdir -l#$ipv6lib"
else
print <<EOS
@@ -236,7 +236,7 @@ end
$objs = ["socket.o"]
-if $getaddr_info_ok or not $ipv6
+if $getaddr_info_ok
if have_func("getaddrinfo") and
have_func("getnameinfo")
have_getaddrinfo = true
@@ -244,6 +244,7 @@ if $getaddr_info_ok or not $ipv6
end
if have_getaddrinfo
+ $CFLAGS="-DHAVE_GETADDRINFO "+$CFLAGS
if try_link(<<EOF)
#include <sys/types.h>
#include <netdb.h>
@@ -256,12 +257,13 @@ main()
struct sockaddr_storage storage;
struct sockaddr_storage *addr = 0;
- addr->_ss_family = &storage.__ss_family;
- addr->_ss_len = &storage.__ss_len;
+ addr->__ss_family = &storage.__ss_family;
+ addr->__ss_len = &storage.__ss_len;
return 0;
}
EOF
sockaddr_storage=true
+ $CFLAGS+=" -DHAVE_SS_LEN"
end
else
sockaddr_storage=true