summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-03 12:24:30 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-07-03 12:24:30 +0000
commitda87fc0e7389842e07a9ce74b27769ed870def9a (patch)
tree4c324d1015c45b9accfcda17bfb9988eeafae9a8 /ext
parentb8f2f0e5611833d1f93c261a772859667e971749 (diff)
* ext/socket/extconf.rb (have_type("PADDRINFO")): new check.
* ext/socket/addrinfo.h: fixed a compilation problem with VC++ 2010. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@32387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r--ext/socket/addrinfo.h2
-rw-r--r--ext/socket/extconf.rb2
2 files changed, 4 insertions, 0 deletions
diff --git a/ext/socket/addrinfo.h b/ext/socket/addrinfo.h
index f0b977d79c..3a478cf36c 100644
--- a/ext/socket/addrinfo.h
+++ b/ext/socket/addrinfo.h
@@ -172,7 +172,9 @@ extern int getnameinfo __P((
int flags));
extern void freehostent __P((struct hostent *));
+#ifndef HAVE_PADDRINFO
extern void freeaddrinfo __P((struct addrinfo *));
+#endif
extern
#ifdef GAI_STRERROR_CONST
const
diff --git a/ext/socket/extconf.rb b/ext/socket/extconf.rb
index a6bc9bb46c..92fa6bf7e1 100644
--- a/ext/socket/extconf.rb
+++ b/ext/socket/extconf.rb
@@ -122,6 +122,8 @@ if have_func("sendmsg") | have_func("recvmsg")
have_struct_member('struct msghdr', 'msg_accrights', ['sys/types.h', 'sys/socket.h'])
end
+have_type("PADDRINFO", %w[ ws2tcpip.h wspiapi.h ])
+
getaddr_info_ok = (enable_config("wide-getaddrinfo") && :wide) ||
(checking_for("wide getaddrinfo") {try_run(<<EOF)} && :os)
#{cpp_include(headers)}