summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2021-06-14 16:21:08 +1200
committerGitHub <noreply@github.com>2021-06-14 16:21:08 +1200
commit2792acc8f29c6ee1d04b57b7b70d43519a0ceda8 (patch)
treef34d853b85cac91a51cb2500c9c4b765433e3672 /ext
parent688b217706546c2bc9a0926de246dc29d0935261 (diff)
Add scheduler hook `Addrinfo.getaddrinfo`. (#4375)
Co-authored-by: Bruno Sutic <code@brunosutic.com>
Notes
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
Diffstat (limited to 'ext')
-rw-r--r--ext/socket/depend435
-rw-r--r--ext/socket/raddrinfo.c125
-rw-r--r--ext/socket/rubysocket.h2
-rw-r--r--ext/socket/socket.c32
4 files changed, 316 insertions, 278 deletions
diff --git a/ext/socket/depend b/ext/socket/depend
index 4997df1117..7538345d6b 100644
--- a/ext/socket/depend
+++ b/ext/socket/depend
@@ -13,6 +13,21 @@ constdefs.c: constdefs.h
ancdata.o: $(RUBY_EXTCONF_H)
ancdata.o: $(arch_hdrdir)/ruby/config.h
ancdata.o: $(hdrdir)/ruby.h
+ancdata.o: $(hdrdir)/ruby/assert.h
+ancdata.o: $(hdrdir)/ruby/backward.h
+ancdata.o: $(hdrdir)/ruby/backward/2/assume.h
+ancdata.o: $(hdrdir)/ruby/backward/2/attributes.h
+ancdata.o: $(hdrdir)/ruby/backward/2/bool.h
+ancdata.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+ancdata.o: $(hdrdir)/ruby/backward/2/inttypes.h
+ancdata.o: $(hdrdir)/ruby/backward/2/limits.h
+ancdata.o: $(hdrdir)/ruby/backward/2/long_long.h
+ancdata.o: $(hdrdir)/ruby/backward/2/stdalign.h
+ancdata.o: $(hdrdir)/ruby/backward/2/stdarg.h
+ancdata.o: $(hdrdir)/ruby/defines.h
+ancdata.o: $(hdrdir)/ruby/encoding.h
+ancdata.o: $(hdrdir)/ruby/fiber/scheduler.h
+ancdata.o: $(hdrdir)/ruby/intern.h
ancdata.o: $(hdrdir)/ruby/internal/anyargs.h
ancdata.o: $(hdrdir)/ruby/internal/arithmetic.h
ancdata.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -152,20 +167,6 @@ ancdata.o: $(hdrdir)/ruby/internal/value_type.h
ancdata.o: $(hdrdir)/ruby/internal/variable.h
ancdata.o: $(hdrdir)/ruby/internal/warning_push.h
ancdata.o: $(hdrdir)/ruby/internal/xmalloc.h
-ancdata.o: $(hdrdir)/ruby/assert.h
-ancdata.o: $(hdrdir)/ruby/backward.h
-ancdata.o: $(hdrdir)/ruby/backward/2/assume.h
-ancdata.o: $(hdrdir)/ruby/backward/2/attributes.h
-ancdata.o: $(hdrdir)/ruby/backward/2/bool.h
-ancdata.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-ancdata.o: $(hdrdir)/ruby/backward/2/inttypes.h
-ancdata.o: $(hdrdir)/ruby/backward/2/limits.h
-ancdata.o: $(hdrdir)/ruby/backward/2/long_long.h
-ancdata.o: $(hdrdir)/ruby/backward/2/stdalign.h
-ancdata.o: $(hdrdir)/ruby/backward/2/stdarg.h
-ancdata.o: $(hdrdir)/ruby/defines.h
-ancdata.o: $(hdrdir)/ruby/encoding.h
-ancdata.o: $(hdrdir)/ruby/intern.h
ancdata.o: $(hdrdir)/ruby/io.h
ancdata.o: $(hdrdir)/ruby/missing.h
ancdata.o: $(hdrdir)/ruby/onigmo.h
@@ -194,6 +195,21 @@ ancdata.o: sockport.h
basicsocket.o: $(RUBY_EXTCONF_H)
basicsocket.o: $(arch_hdrdir)/ruby/config.h
basicsocket.o: $(hdrdir)/ruby.h
+basicsocket.o: $(hdrdir)/ruby/assert.h
+basicsocket.o: $(hdrdir)/ruby/backward.h
+basicsocket.o: $(hdrdir)/ruby/backward/2/assume.h
+basicsocket.o: $(hdrdir)/ruby/backward/2/attributes.h
+basicsocket.o: $(hdrdir)/ruby/backward/2/bool.h
+basicsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+basicsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
+basicsocket.o: $(hdrdir)/ruby/backward/2/limits.h
+basicsocket.o: $(hdrdir)/ruby/backward/2/long_long.h
+basicsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
+basicsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
+basicsocket.o: $(hdrdir)/ruby/defines.h
+basicsocket.o: $(hdrdir)/ruby/encoding.h
+basicsocket.o: $(hdrdir)/ruby/fiber/scheduler.h
+basicsocket.o: $(hdrdir)/ruby/intern.h
basicsocket.o: $(hdrdir)/ruby/internal/anyargs.h
basicsocket.o: $(hdrdir)/ruby/internal/arithmetic.h
basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -333,20 +349,6 @@ basicsocket.o: $(hdrdir)/ruby/internal/value_type.h
basicsocket.o: $(hdrdir)/ruby/internal/variable.h
basicsocket.o: $(hdrdir)/ruby/internal/warning_push.h
basicsocket.o: $(hdrdir)/ruby/internal/xmalloc.h
-basicsocket.o: $(hdrdir)/ruby/assert.h
-basicsocket.o: $(hdrdir)/ruby/backward.h
-basicsocket.o: $(hdrdir)/ruby/backward/2/assume.h
-basicsocket.o: $(hdrdir)/ruby/backward/2/attributes.h
-basicsocket.o: $(hdrdir)/ruby/backward/2/bool.h
-basicsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-basicsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
-basicsocket.o: $(hdrdir)/ruby/backward/2/limits.h
-basicsocket.o: $(hdrdir)/ruby/backward/2/long_long.h
-basicsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
-basicsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
-basicsocket.o: $(hdrdir)/ruby/defines.h
-basicsocket.o: $(hdrdir)/ruby/encoding.h
-basicsocket.o: $(hdrdir)/ruby/intern.h
basicsocket.o: $(hdrdir)/ruby/io.h
basicsocket.o: $(hdrdir)/ruby/missing.h
basicsocket.o: $(hdrdir)/ruby/onigmo.h
@@ -375,6 +377,21 @@ basicsocket.o: sockport.h
constants.o: $(RUBY_EXTCONF_H)
constants.o: $(arch_hdrdir)/ruby/config.h
constants.o: $(hdrdir)/ruby.h
+constants.o: $(hdrdir)/ruby/assert.h
+constants.o: $(hdrdir)/ruby/backward.h
+constants.o: $(hdrdir)/ruby/backward/2/assume.h
+constants.o: $(hdrdir)/ruby/backward/2/attributes.h
+constants.o: $(hdrdir)/ruby/backward/2/bool.h
+constants.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+constants.o: $(hdrdir)/ruby/backward/2/inttypes.h
+constants.o: $(hdrdir)/ruby/backward/2/limits.h
+constants.o: $(hdrdir)/ruby/backward/2/long_long.h
+constants.o: $(hdrdir)/ruby/backward/2/stdalign.h
+constants.o: $(hdrdir)/ruby/backward/2/stdarg.h
+constants.o: $(hdrdir)/ruby/defines.h
+constants.o: $(hdrdir)/ruby/encoding.h
+constants.o: $(hdrdir)/ruby/fiber/scheduler.h
+constants.o: $(hdrdir)/ruby/intern.h
constants.o: $(hdrdir)/ruby/internal/anyargs.h
constants.o: $(hdrdir)/ruby/internal/arithmetic.h
constants.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -514,20 +531,6 @@ constants.o: $(hdrdir)/ruby/internal/value_type.h
constants.o: $(hdrdir)/ruby/internal/variable.h
constants.o: $(hdrdir)/ruby/internal/warning_push.h
constants.o: $(hdrdir)/ruby/internal/xmalloc.h
-constants.o: $(hdrdir)/ruby/assert.h
-constants.o: $(hdrdir)/ruby/backward.h
-constants.o: $(hdrdir)/ruby/backward/2/assume.h
-constants.o: $(hdrdir)/ruby/backward/2/attributes.h
-constants.o: $(hdrdir)/ruby/backward/2/bool.h
-constants.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-constants.o: $(hdrdir)/ruby/backward/2/inttypes.h
-constants.o: $(hdrdir)/ruby/backward/2/limits.h
-constants.o: $(hdrdir)/ruby/backward/2/long_long.h
-constants.o: $(hdrdir)/ruby/backward/2/stdalign.h
-constants.o: $(hdrdir)/ruby/backward/2/stdarg.h
-constants.o: $(hdrdir)/ruby/defines.h
-constants.o: $(hdrdir)/ruby/encoding.h
-constants.o: $(hdrdir)/ruby/intern.h
constants.o: $(hdrdir)/ruby/io.h
constants.o: $(hdrdir)/ruby/missing.h
constants.o: $(hdrdir)/ruby/onigmo.h
@@ -557,6 +560,21 @@ constants.o: sockport.h
ifaddr.o: $(RUBY_EXTCONF_H)
ifaddr.o: $(arch_hdrdir)/ruby/config.h
ifaddr.o: $(hdrdir)/ruby.h
+ifaddr.o: $(hdrdir)/ruby/assert.h
+ifaddr.o: $(hdrdir)/ruby/backward.h
+ifaddr.o: $(hdrdir)/ruby/backward/2/assume.h
+ifaddr.o: $(hdrdir)/ruby/backward/2/attributes.h
+ifaddr.o: $(hdrdir)/ruby/backward/2/bool.h
+ifaddr.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+ifaddr.o: $(hdrdir)/ruby/backward/2/inttypes.h
+ifaddr.o: $(hdrdir)/ruby/backward/2/limits.h
+ifaddr.o: $(hdrdir)/ruby/backward/2/long_long.h
+ifaddr.o: $(hdrdir)/ruby/backward/2/stdalign.h
+ifaddr.o: $(hdrdir)/ruby/backward/2/stdarg.h
+ifaddr.o: $(hdrdir)/ruby/defines.h
+ifaddr.o: $(hdrdir)/ruby/encoding.h
+ifaddr.o: $(hdrdir)/ruby/fiber/scheduler.h
+ifaddr.o: $(hdrdir)/ruby/intern.h
ifaddr.o: $(hdrdir)/ruby/internal/anyargs.h
ifaddr.o: $(hdrdir)/ruby/internal/arithmetic.h
ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -696,20 +714,6 @@ ifaddr.o: $(hdrdir)/ruby/internal/value_type.h
ifaddr.o: $(hdrdir)/ruby/internal/variable.h
ifaddr.o: $(hdrdir)/ruby/internal/warning_push.h
ifaddr.o: $(hdrdir)/ruby/internal/xmalloc.h
-ifaddr.o: $(hdrdir)/ruby/assert.h
-ifaddr.o: $(hdrdir)/ruby/backward.h
-ifaddr.o: $(hdrdir)/ruby/backward/2/assume.h
-ifaddr.o: $(hdrdir)/ruby/backward/2/attributes.h
-ifaddr.o: $(hdrdir)/ruby/backward/2/bool.h
-ifaddr.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-ifaddr.o: $(hdrdir)/ruby/backward/2/inttypes.h
-ifaddr.o: $(hdrdir)/ruby/backward/2/limits.h
-ifaddr.o: $(hdrdir)/ruby/backward/2/long_long.h
-ifaddr.o: $(hdrdir)/ruby/backward/2/stdalign.h
-ifaddr.o: $(hdrdir)/ruby/backward/2/stdarg.h
-ifaddr.o: $(hdrdir)/ruby/defines.h
-ifaddr.o: $(hdrdir)/ruby/encoding.h
-ifaddr.o: $(hdrdir)/ruby/intern.h
ifaddr.o: $(hdrdir)/ruby/io.h
ifaddr.o: $(hdrdir)/ruby/missing.h
ifaddr.o: $(hdrdir)/ruby/onigmo.h
@@ -738,6 +742,21 @@ ifaddr.o: sockport.h
init.o: $(RUBY_EXTCONF_H)
init.o: $(arch_hdrdir)/ruby/config.h
init.o: $(hdrdir)/ruby.h
+init.o: $(hdrdir)/ruby/assert.h
+init.o: $(hdrdir)/ruby/backward.h
+init.o: $(hdrdir)/ruby/backward/2/assume.h
+init.o: $(hdrdir)/ruby/backward/2/attributes.h
+init.o: $(hdrdir)/ruby/backward/2/bool.h
+init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+init.o: $(hdrdir)/ruby/backward/2/inttypes.h
+init.o: $(hdrdir)/ruby/backward/2/limits.h
+init.o: $(hdrdir)/ruby/backward/2/long_long.h
+init.o: $(hdrdir)/ruby/backward/2/stdalign.h
+init.o: $(hdrdir)/ruby/backward/2/stdarg.h
+init.o: $(hdrdir)/ruby/defines.h
+init.o: $(hdrdir)/ruby/encoding.h
+init.o: $(hdrdir)/ruby/fiber/scheduler.h
+init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/internal/anyargs.h
init.o: $(hdrdir)/ruby/internal/arithmetic.h
init.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -877,20 +896,6 @@ init.o: $(hdrdir)/ruby/internal/value_type.h
init.o: $(hdrdir)/ruby/internal/variable.h
init.o: $(hdrdir)/ruby/internal/warning_push.h
init.o: $(hdrdir)/ruby/internal/xmalloc.h
-init.o: $(hdrdir)/ruby/assert.h
-init.o: $(hdrdir)/ruby/backward.h
-init.o: $(hdrdir)/ruby/backward/2/assume.h
-init.o: $(hdrdir)/ruby/backward/2/attributes.h
-init.o: $(hdrdir)/ruby/backward/2/bool.h
-init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-init.o: $(hdrdir)/ruby/backward/2/inttypes.h
-init.o: $(hdrdir)/ruby/backward/2/limits.h
-init.o: $(hdrdir)/ruby/backward/2/long_long.h
-init.o: $(hdrdir)/ruby/backward/2/stdalign.h
-init.o: $(hdrdir)/ruby/backward/2/stdarg.h
-init.o: $(hdrdir)/ruby/defines.h
-init.o: $(hdrdir)/ruby/encoding.h
-init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/io.h
init.o: $(hdrdir)/ruby/missing.h
init.o: $(hdrdir)/ruby/onigmo.h
@@ -919,6 +924,21 @@ init.o: sockport.h
ipsocket.o: $(RUBY_EXTCONF_H)
ipsocket.o: $(arch_hdrdir)/ruby/config.h
ipsocket.o: $(hdrdir)/ruby.h
+ipsocket.o: $(hdrdir)/ruby/assert.h
+ipsocket.o: $(hdrdir)/ruby/backward.h
+ipsocket.o: $(hdrdir)/ruby/backward/2/assume.h
+ipsocket.o: $(hdrdir)/ruby/backward/2/attributes.h
+ipsocket.o: $(hdrdir)/ruby/backward/2/bool.h
+ipsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+ipsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
+ipsocket.o: $(hdrdir)/ruby/backward/2/limits.h
+ipsocket.o: $(hdrdir)/ruby/backward/2/long_long.h
+ipsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
+ipsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
+ipsocket.o: $(hdrdir)/ruby/defines.h
+ipsocket.o: $(hdrdir)/ruby/encoding.h
+ipsocket.o: $(hdrdir)/ruby/fiber/scheduler.h
+ipsocket.o: $(hdrdir)/ruby/intern.h
ipsocket.o: $(hdrdir)/ruby/internal/anyargs.h
ipsocket.o: $(hdrdir)/ruby/internal/arithmetic.h
ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -1058,20 +1078,6 @@ ipsocket.o: $(hdrdir)/ruby/internal/value_type.h
ipsocket.o: $(hdrdir)/ruby/internal/variable.h
ipsocket.o: $(hdrdir)/ruby/internal/warning_push.h
ipsocket.o: $(hdrdir)/ruby/internal/xmalloc.h
-ipsocket.o: $(hdrdir)/ruby/assert.h
-ipsocket.o: $(hdrdir)/ruby/backward.h
-ipsocket.o: $(hdrdir)/ruby/backward/2/assume.h
-ipsocket.o: $(hdrdir)/ruby/backward/2/attributes.h
-ipsocket.o: $(hdrdir)/ruby/backward/2/bool.h
-ipsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-ipsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
-ipsocket.o: $(hdrdir)/ruby/backward/2/limits.h
-ipsocket.o: $(hdrdir)/ruby/backward/2/long_long.h
-ipsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
-ipsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
-ipsocket.o: $(hdrdir)/ruby/defines.h
-ipsocket.o: $(hdrdir)/ruby/encoding.h
-ipsocket.o: $(hdrdir)/ruby/intern.h
ipsocket.o: $(hdrdir)/ruby/io.h
ipsocket.o: $(hdrdir)/ruby/missing.h
ipsocket.o: $(hdrdir)/ruby/onigmo.h
@@ -1100,6 +1106,21 @@ ipsocket.o: sockport.h
option.o: $(RUBY_EXTCONF_H)
option.o: $(arch_hdrdir)/ruby/config.h
option.o: $(hdrdir)/ruby.h
+option.o: $(hdrdir)/ruby/assert.h
+option.o: $(hdrdir)/ruby/backward.h
+option.o: $(hdrdir)/ruby/backward/2/assume.h
+option.o: $(hdrdir)/ruby/backward/2/attributes.h
+option.o: $(hdrdir)/ruby/backward/2/bool.h
+option.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+option.o: $(hdrdir)/ruby/backward/2/inttypes.h
+option.o: $(hdrdir)/ruby/backward/2/limits.h
+option.o: $(hdrdir)/ruby/backward/2/long_long.h
+option.o: $(hdrdir)/ruby/backward/2/stdalign.h
+option.o: $(hdrdir)/ruby/backward/2/stdarg.h
+option.o: $(hdrdir)/ruby/defines.h
+option.o: $(hdrdir)/ruby/encoding.h
+option.o: $(hdrdir)/ruby/fiber/scheduler.h
+option.o: $(hdrdir)/ruby/intern.h
option.o: $(hdrdir)/ruby/internal/anyargs.h
option.o: $(hdrdir)/ruby/internal/arithmetic.h
option.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -1239,20 +1260,6 @@ option.o: $(hdrdir)/ruby/internal/value_type.h
option.o: $(hdrdir)/ruby/internal/variable.h
option.o: $(hdrdir)/ruby/internal/warning_push.h
option.o: $(hdrdir)/ruby/internal/xmalloc.h
-option.o: $(hdrdir)/ruby/assert.h
-option.o: $(hdrdir)/ruby/backward.h
-option.o: $(hdrdir)/ruby/backward/2/assume.h
-option.o: $(hdrdir)/ruby/backward/2/attributes.h
-option.o: $(hdrdir)/ruby/backward/2/bool.h
-option.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-option.o: $(hdrdir)/ruby/backward/2/inttypes.h
-option.o: $(hdrdir)/ruby/backward/2/limits.h
-option.o: $(hdrdir)/ruby/backward/2/long_long.h
-option.o: $(hdrdir)/ruby/backward/2/stdalign.h
-option.o: $(hdrdir)/ruby/backward/2/stdarg.h
-option.o: $(hdrdir)/ruby/defines.h
-option.o: $(hdrdir)/ruby/encoding.h
-option.o: $(hdrdir)/ruby/intern.h
option.o: $(hdrdir)/ruby/io.h
option.o: $(hdrdir)/ruby/missing.h
option.o: $(hdrdir)/ruby/onigmo.h
@@ -1281,6 +1288,21 @@ option.o: sockport.h
raddrinfo.o: $(RUBY_EXTCONF_H)
raddrinfo.o: $(arch_hdrdir)/ruby/config.h
raddrinfo.o: $(hdrdir)/ruby.h
+raddrinfo.o: $(hdrdir)/ruby/assert.h
+raddrinfo.o: $(hdrdir)/ruby/backward.h
+raddrinfo.o: $(hdrdir)/ruby/backward/2/assume.h
+raddrinfo.o: $(hdrdir)/ruby/backward/2/attributes.h
+raddrinfo.o: $(hdrdir)/ruby/backward/2/bool.h
+raddrinfo.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+raddrinfo.o: $(hdrdir)/ruby/backward/2/inttypes.h
+raddrinfo.o: $(hdrdir)/ruby/backward/2/limits.h
+raddrinfo.o: $(hdrdir)/ruby/backward/2/long_long.h
+raddrinfo.o: $(hdrdir)/ruby/backward/2/stdalign.h
+raddrinfo.o: $(hdrdir)/ruby/backward/2/stdarg.h
+raddrinfo.o: $(hdrdir)/ruby/defines.h
+raddrinfo.o: $(hdrdir)/ruby/encoding.h
+raddrinfo.o: $(hdrdir)/ruby/fiber/scheduler.h
+raddrinfo.o: $(hdrdir)/ruby/intern.h
raddrinfo.o: $(hdrdir)/ruby/internal/anyargs.h
raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic.h
raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -1420,20 +1442,6 @@ raddrinfo.o: $(hdrdir)/ruby/internal/value_type.h
raddrinfo.o: $(hdrdir)/ruby/internal/variable.h
raddrinfo.o: $(hdrdir)/ruby/internal/warning_push.h
raddrinfo.o: $(hdrdir)/ruby/internal/xmalloc.h
-raddrinfo.o: $(hdrdir)/ruby/assert.h
-raddrinfo.o: $(hdrdir)/ruby/backward.h
-raddrinfo.o: $(hdrdir)/ruby/backward/2/assume.h
-raddrinfo.o: $(hdrdir)/ruby/backward/2/attributes.h
-raddrinfo.o: $(hdrdir)/ruby/backward/2/bool.h
-raddrinfo.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-raddrinfo.o: $(hdrdir)/ruby/backward/2/inttypes.h
-raddrinfo.o: $(hdrdir)/ruby/backward/2/limits.h
-raddrinfo.o: $(hdrdir)/ruby/backward/2/long_long.h
-raddrinfo.o: $(hdrdir)/ruby/backward/2/stdalign.h
-raddrinfo.o: $(hdrdir)/ruby/backward/2/stdarg.h
-raddrinfo.o: $(hdrdir)/ruby/defines.h
-raddrinfo.o: $(hdrdir)/ruby/encoding.h
-raddrinfo.o: $(hdrdir)/ruby/intern.h
raddrinfo.o: $(hdrdir)/ruby/io.h
raddrinfo.o: $(hdrdir)/ruby/missing.h
raddrinfo.o: $(hdrdir)/ruby/onigmo.h
@@ -1462,6 +1470,21 @@ raddrinfo.o: sockport.h
socket.o: $(RUBY_EXTCONF_H)
socket.o: $(arch_hdrdir)/ruby/config.h
socket.o: $(hdrdir)/ruby.h
+socket.o: $(hdrdir)/ruby/assert.h
+socket.o: $(hdrdir)/ruby/backward.h
+socket.o: $(hdrdir)/ruby/backward/2/assume.h
+socket.o: $(hdrdir)/ruby/backward/2/attributes.h
+socket.o: $(hdrdir)/ruby/backward/2/bool.h
+socket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+socket.o: $(hdrdir)/ruby/backward/2/inttypes.h
+socket.o: $(hdrdir)/ruby/backward/2/limits.h
+socket.o: $(hdrdir)/ruby/backward/2/long_long.h
+socket.o: $(hdrdir)/ruby/backward/2/stdalign.h
+socket.o: $(hdrdir)/ruby/backward/2/stdarg.h
+socket.o: $(hdrdir)/ruby/defines.h
+socket.o: $(hdrdir)/ruby/encoding.h
+socket.o: $(hdrdir)/ruby/fiber/scheduler.h
+socket.o: $(hdrdir)/ruby/intern.h
socket.o: $(hdrdir)/ruby/internal/anyargs.h
socket.o: $(hdrdir)/ruby/internal/arithmetic.h
socket.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -1601,20 +1624,6 @@ socket.o: $(hdrdir)/ruby/internal/value_type.h
socket.o: $(hdrdir)/ruby/internal/variable.h
socket.o: $(hdrdir)/ruby/internal/warning_push.h
socket.o: $(hdrdir)/ruby/internal/xmalloc.h
-socket.o: $(hdrdir)/ruby/assert.h
-socket.o: $(hdrdir)/ruby/backward.h
-socket.o: $(hdrdir)/ruby/backward/2/assume.h
-socket.o: $(hdrdir)/ruby/backward/2/attributes.h
-socket.o: $(hdrdir)/ruby/backward/2/bool.h
-socket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-socket.o: $(hdrdir)/ruby/backward/2/inttypes.h
-socket.o: $(hdrdir)/ruby/backward/2/limits.h
-socket.o: $(hdrdir)/ruby/backward/2/long_long.h
-socket.o: $(hdrdir)/ruby/backward/2/stdalign.h
-socket.o: $(hdrdir)/ruby/backward/2/stdarg.h
-socket.o: $(hdrdir)/ruby/defines.h
-socket.o: $(hdrdir)/ruby/encoding.h
-socket.o: $(hdrdir)/ruby/intern.h
socket.o: $(hdrdir)/ruby/io.h
socket.o: $(hdrdir)/ruby/missing.h
socket.o: $(hdrdir)/ruby/onigmo.h
@@ -1643,6 +1652,21 @@ socket.o: sockport.h
sockssocket.o: $(RUBY_EXTCONF_H)
sockssocket.o: $(arch_hdrdir)/ruby/config.h
sockssocket.o: $(hdrdir)/ruby.h
+sockssocket.o: $(hdrdir)/ruby/assert.h
+sockssocket.o: $(hdrdir)/ruby/backward.h
+sockssocket.o: $(hdrdir)/ruby/backward/2/assume.h
+sockssocket.o: $(hdrdir)/ruby/backward/2/attributes.h
+sockssocket.o: $(hdrdir)/ruby/backward/2/bool.h
+sockssocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+sockssocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
+sockssocket.o: $(hdrdir)/ruby/backward/2/limits.h
+sockssocket.o: $(hdrdir)/ruby/backward/2/long_long.h
+sockssocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
+sockssocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
+sockssocket.o: $(hdrdir)/ruby/defines.h
+sockssocket.o: $(hdrdir)/ruby/encoding.h
+sockssocket.o: $(hdrdir)/ruby/fiber/scheduler.h
+sockssocket.o: $(hdrdir)/ruby/intern.h
sockssocket.o: $(hdrdir)/ruby/internal/anyargs.h
sockssocket.o: $(hdrdir)/ruby/internal/arithmetic.h
sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -1782,20 +1806,6 @@ sockssocket.o: $(hdrdir)/ruby/internal/value_type.h
sockssocket.o: $(hdrdir)/ruby/internal/variable.h
sockssocket.o: $(hdrdir)/ruby/internal/warning_push.h
sockssocket.o: $(hdrdir)/ruby/internal/xmalloc.h
-sockssocket.o: $(hdrdir)/ruby/assert.h
-sockssocket.o: $(hdrdir)/ruby/backward.h
-sockssocket.o: $(hdrdir)/ruby/backward/2/assume.h
-sockssocket.o: $(hdrdir)/ruby/backward/2/attributes.h
-sockssocket.o: $(hdrdir)/ruby/backward/2/bool.h
-sockssocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-sockssocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
-sockssocket.o: $(hdrdir)/ruby/backward/2/limits.h
-sockssocket.o: $(hdrdir)/ruby/backward/2/long_long.h
-sockssocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
-sockssocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
-sockssocket.o: $(hdrdir)/ruby/defines.h
-sockssocket.o: $(hdrdir)/ruby/encoding.h
-sockssocket.o: $(hdrdir)/ruby/intern.h
sockssocket.o: $(hdrdir)/ruby/io.h
sockssocket.o: $(hdrdir)/ruby/missing.h
sockssocket.o: $(hdrdir)/ruby/onigmo.h
@@ -1824,6 +1834,21 @@ sockssocket.o: sockssocket.c
tcpserver.o: $(RUBY_EXTCONF_H)
tcpserver.o: $(arch_hdrdir)/ruby/config.h
tcpserver.o: $(hdrdir)/ruby.h
+tcpserver.o: $(hdrdir)/ruby/assert.h
+tcpserver.o: $(hdrdir)/ruby/backward.h
+tcpserver.o: $(hdrdir)/ruby/backward/2/assume.h
+tcpserver.o: $(hdrdir)/ruby/backward/2/attributes.h
+tcpserver.o: $(hdrdir)/ruby/backward/2/bool.h
+tcpserver.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+tcpserver.o: $(hdrdir)/ruby/backward/2/inttypes.h
+tcpserver.o: $(hdrdir)/ruby/backward/2/limits.h
+tcpserver.o: $(hdrdir)/ruby/backward/2/long_long.h
+tcpserver.o: $(hdrdir)/ruby/backward/2/stdalign.h
+tcpserver.o: $(hdrdir)/ruby/backward/2/stdarg.h
+tcpserver.o: $(hdrdir)/ruby/defines.h
+tcpserver.o: $(hdrdir)/ruby/encoding.h
+tcpserver.o: $(hdrdir)/ruby/fiber/scheduler.h
+tcpserver.o: $(hdrdir)/ruby/intern.h
tcpserver.o: $(hdrdir)/ruby/internal/anyargs.h
tcpserver.o: $(hdrdir)/ruby/internal/arithmetic.h
tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -1963,20 +1988,6 @@ tcpserver.o: $(hdrdir)/ruby/internal/value_type.h
tcpserver.o: $(hdrdir)/ruby/internal/variable.h
tcpserver.o: $(hdrdir)/ruby/internal/warning_push.h
tcpserver.o: $(hdrdir)/ruby/internal/xmalloc.h
-tcpserver.o: $(hdrdir)/ruby/assert.h
-tcpserver.o: $(hdrdir)/ruby/backward.h
-tcpserver.o: $(hdrdir)/ruby/backward/2/assume.h
-tcpserver.o: $(hdrdir)/ruby/backward/2/attributes.h
-tcpserver.o: $(hdrdir)/ruby/backward/2/bool.h
-tcpserver.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-tcpserver.o: $(hdrdir)/ruby/backward/2/inttypes.h
-tcpserver.o: $(hdrdir)/ruby/backward/2/limits.h
-tcpserver.o: $(hdrdir)/ruby/backward/2/long_long.h
-tcpserver.o: $(hdrdir)/ruby/backward/2/stdalign.h
-tcpserver.o: $(hdrdir)/ruby/backward/2/stdarg.h
-tcpserver.o: $(hdrdir)/ruby/defines.h
-tcpserver.o: $(hdrdir)/ruby/encoding.h
-tcpserver.o: $(hdrdir)/ruby/intern.h
tcpserver.o: $(hdrdir)/ruby/io.h
tcpserver.o: $(hdrdir)/ruby/missing.h
tcpserver.o: $(hdrdir)/ruby/onigmo.h
@@ -2005,6 +2016,21 @@ tcpserver.o: tcpserver.c
tcpsocket.o: $(RUBY_EXTCONF_H)
tcpsocket.o: $(arch_hdrdir)/ruby/config.h
tcpsocket.o: $(hdrdir)/ruby.h
+tcpsocket.o: $(hdrdir)/ruby/assert.h
+tcpsocket.o: $(hdrdir)/ruby/backward.h
+tcpsocket.o: $(hdrdir)/ruby/backward/2/assume.h
+tcpsocket.o: $(hdrdir)/ruby/backward/2/attributes.h
+tcpsocket.o: $(hdrdir)/ruby/backward/2/bool.h
+tcpsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+tcpsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
+tcpsocket.o: $(hdrdir)/ruby/backward/2/limits.h
+tcpsocket.o: $(hdrdir)/ruby/backward/2/long_long.h
+tcpsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
+tcpsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
+tcpsocket.o: $(hdrdir)/ruby/defines.h
+tcpsocket.o: $(hdrdir)/ruby/encoding.h
+tcpsocket.o: $(hdrdir)/ruby/fiber/scheduler.h
+tcpsocket.o: $(hdrdir)/ruby/intern.h
tcpsocket.o: $(hdrdir)/ruby/internal/anyargs.h
tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic.h
tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -2144,20 +2170,6 @@ tcpsocket.o: $(hdrdir)/ruby/internal/value_type.h
tcpsocket.o: $(hdrdir)/ruby/internal/variable.h
tcpsocket.o: $(hdrdir)/ruby/internal/warning_push.h
tcpsocket.o: $(hdrdir)/ruby/internal/xmalloc.h
-tcpsocket.o: $(hdrdir)/ruby/assert.h
-tcpsocket.o: $(hdrdir)/ruby/backward.h
-tcpsocket.o: $(hdrdir)/ruby/backward/2/assume.h
-tcpsocket.o: $(hdrdir)/ruby/backward/2/attributes.h
-tcpsocket.o: $(hdrdir)/ruby/backward/2/bool.h
-tcpsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-tcpsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
-tcpsocket.o: $(hdrdir)/ruby/backward/2/limits.h
-tcpsocket.o: $(hdrdir)/ruby/backward/2/long_long.h
-tcpsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
-tcpsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
-tcpsocket.o: $(hdrdir)/ruby/defines.h
-tcpsocket.o: $(hdrdir)/ruby/encoding.h
-tcpsocket.o: $(hdrdir)/ruby/intern.h
tcpsocket.o: $(hdrdir)/ruby/io.h
tcpsocket.o: $(hdrdir)/ruby/missing.h
tcpsocket.o: $(hdrdir)/ruby/onigmo.h
@@ -2186,6 +2198,21 @@ tcpsocket.o: tcpsocket.c
udpsocket.o: $(RUBY_EXTCONF_H)
udpsocket.o: $(arch_hdrdir)/ruby/config.h
udpsocket.o: $(hdrdir)/ruby.h
+udpsocket.o: $(hdrdir)/ruby/assert.h
+udpsocket.o: $(hdrdir)/ruby/backward.h
+udpsocket.o: $(hdrdir)/ruby/backward/2/assume.h
+udpsocket.o: $(hdrdir)/ruby/backward/2/attributes.h
+udpsocket.o: $(hdrdir)/ruby/backward/2/bool.h
+udpsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+udpsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
+udpsocket.o: $(hdrdir)/ruby/backward/2/limits.h
+udpsocket.o: $(hdrdir)/ruby/backward/2/long_long.h
+udpsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
+udpsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
+udpsocket.o: $(hdrdir)/ruby/defines.h
+udpsocket.o: $(hdrdir)/ruby/encoding.h
+udpsocket.o: $(hdrdir)/ruby/fiber/scheduler.h
+udpsocket.o: $(hdrdir)/ruby/intern.h
udpsocket.o: $(hdrdir)/ruby/internal/anyargs.h
udpsocket.o: $(hdrdir)/ruby/internal/arithmetic.h
udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -2325,20 +2352,6 @@ udpsocket.o: $(hdrdir)/ruby/internal/value_type.h
udpsocket.o: $(hdrdir)/ruby/internal/variable.h
udpsocket.o: $(hdrdir)/ruby/internal/warning_push.h
udpsocket.o: $(hdrdir)/ruby/internal/xmalloc.h
-udpsocket.o: $(hdrdir)/ruby/assert.h
-udpsocket.o: $(hdrdir)/ruby/backward.h
-udpsocket.o: $(hdrdir)/ruby/backward/2/assume.h
-udpsocket.o: $(hdrdir)/ruby/backward/2/attributes.h
-udpsocket.o: $(hdrdir)/ruby/backward/2/bool.h
-udpsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-udpsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
-udpsocket.o: $(hdrdir)/ruby/backward/2/limits.h
-udpsocket.o: $(hdrdir)/ruby/backward/2/long_long.h
-udpsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
-udpsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
-udpsocket.o: $(hdrdir)/ruby/defines.h
-udpsocket.o: $(hdrdir)/ruby/encoding.h
-udpsocket.o: $(hdrdir)/ruby/intern.h
udpsocket.o: $(hdrdir)/ruby/io.h
udpsocket.o: $(hdrdir)/ruby/missing.h
udpsocket.o: $(hdrdir)/ruby/onigmo.h
@@ -2367,6 +2380,21 @@ udpsocket.o: udpsocket.c
unixserver.o: $(RUBY_EXTCONF_H)
unixserver.o: $(arch_hdrdir)/ruby/config.h
unixserver.o: $(hdrdir)/ruby.h
+unixserver.o: $(hdrdir)/ruby/assert.h
+unixserver.o: $(hdrdir)/ruby/backward.h
+unixserver.o: $(hdrdir)/ruby/backward/2/assume.h
+unixserver.o: $(hdrdir)/ruby/backward/2/attributes.h
+unixserver.o: $(hdrdir)/ruby/backward/2/bool.h
+unixserver.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+unixserver.o: $(hdrdir)/ruby/backward/2/inttypes.h
+unixserver.o: $(hdrdir)/ruby/backward/2/limits.h
+unixserver.o: $(hdrdir)/ruby/backward/2/long_long.h
+unixserver.o: $(hdrdir)/ruby/backward/2/stdalign.h
+unixserver.o: $(hdrdir)/ruby/backward/2/stdarg.h
+unixserver.o: $(hdrdir)/ruby/defines.h
+unixserver.o: $(hdrdir)/ruby/encoding.h
+unixserver.o: $(hdrdir)/ruby/fiber/scheduler.h
+unixserver.o: $(hdrdir)/ruby/intern.h
unixserver.o: $(hdrdir)/ruby/internal/anyargs.h
unixserver.o: $(hdrdir)/ruby/internal/arithmetic.h
unixserver.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -2506,20 +2534,6 @@ unixserver.o: $(hdrdir)/ruby/internal/value_type.h
unixserver.o: $(hdrdir)/ruby/internal/variable.h
unixserver.o: $(hdrdir)/ruby/internal/warning_push.h
unixserver.o: $(hdrdir)/ruby/internal/xmalloc.h
-unixserver.o: $(hdrdir)/ruby/assert.h
-unixserver.o: $(hdrdir)/ruby/backward.h
-unixserver.o: $(hdrdir)/ruby/backward/2/assume.h
-unixserver.o: $(hdrdir)/ruby/backward/2/attributes.h
-unixserver.o: $(hdrdir)/ruby/backward/2/bool.h
-unixserver.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-unixserver.o: $(hdrdir)/ruby/backward/2/inttypes.h
-unixserver.o: $(hdrdir)/ruby/backward/2/limits.h
-unixserver.o: $(hdrdir)/ruby/backward/2/long_long.h
-unixserver.o: $(hdrdir)/ruby/backward/2/stdalign.h
-unixserver.o: $(hdrdir)/ruby/backward/2/stdarg.h
-unixserver.o: $(hdrdir)/ruby/defines.h
-unixserver.o: $(hdrdir)/ruby/encoding.h
-unixserver.o: $(hdrdir)/ruby/intern.h
unixserver.o: $(hdrdir)/ruby/io.h
unixserver.o: $(hdrdir)/ruby/missing.h
unixserver.o: $(hdrdir)/ruby/onigmo.h
@@ -2548,6 +2562,21 @@ unixserver.o: unixserver.c
unixsocket.o: $(RUBY_EXTCONF_H)
unixsocket.o: $(arch_hdrdir)/ruby/config.h
unixsocket.o: $(hdrdir)/ruby.h
+unixsocket.o: $(hdrdir)/ruby/assert.h
+unixsocket.o: $(hdrdir)/ruby/backward.h
+unixsocket.o: $(hdrdir)/ruby/backward/2/assume.h
+unixsocket.o: $(hdrdir)/ruby/backward/2/attributes.h
+unixsocket.o: $(hdrdir)/ruby/backward/2/bool.h
+unixsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
+unixsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
+unixsocket.o: $(hdrdir)/ruby/backward/2/limits.h
+unixsocket.o: $(hdrdir)/ruby/backward/2/long_long.h
+unixsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
+unixsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
+unixsocket.o: $(hdrdir)/ruby/defines.h
+unixsocket.o: $(hdrdir)/ruby/encoding.h
+unixsocket.o: $(hdrdir)/ruby/fiber/scheduler.h
+unixsocket.o: $(hdrdir)/ruby/intern.h
unixsocket.o: $(hdrdir)/ruby/internal/anyargs.h
unixsocket.o: $(hdrdir)/ruby/internal/arithmetic.h
unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@@ -2687,20 +2716,6 @@ unixsocket.o: $(hdrdir)/ruby/internal/value_type.h
unixsocket.o: $(hdrdir)/ruby/internal/variable.h
unixsocket.o: $(hdrdir)/ruby/internal/warning_push.h
unixsocket.o: $(hdrdir)/ruby/internal/xmalloc.h
-unixsocket.o: $(hdrdir)/ruby/assert.h
-unixsocket.o: $(hdrdir)/ruby/backward.h
-unixsocket.o: $(hdrdir)/ruby/backward/2/assume.h
-unixsocket.o: $(hdrdir)/ruby/backward/2/attributes.h
-unixsocket.o: $(hdrdir)/ruby/backward/2/bool.h
-unixsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
-unixsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h
-unixsocket.o: $(hdrdir)/ruby/backward/2/limits.h
-unixsocket.o: $(hdrdir)/ruby/backward/2/long_long.h
-unixsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h
-unixsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h
-unixsocket.o: $(hdrdir)/ruby/defines.h
-unixsocket.o: $(hdrdir)/ruby/encoding.h
-unixsocket.o: $(hdrdir)/ruby/intern.h
unixsocket.o: $(hdrdir)/ruby/io.h
unixsocket.o: $(hdrdir)/ruby/missing.h
unixsocket.o: $(hdrdir)/ruby/onigmo.h
diff --git a/ext/socket/raddrinfo.c b/ext/socket/raddrinfo.c
index d99edfe057..d94e96a2bc 100644
--- a/ext/socket/raddrinfo.c
+++ b/ext/socket/raddrinfo.c
@@ -284,40 +284,6 @@ numeric_getaddrinfo(const char *node, const char *service,
return EAI_FAIL;
}
-int
-rb_getaddrinfo(const char *node, const char *service,
- const struct addrinfo *hints,
- struct rb_addrinfo **res)
-{
- struct addrinfo *ai;
- int ret;
- int allocated_by_malloc = 0;
-
- ret = numeric_getaddrinfo(node, service, hints, &ai);
- if (ret == 0)
- allocated_by_malloc = 1;
- else {
-#ifdef GETADDRINFO_EMU
- ret = getaddrinfo(node, service, hints, &ai);
-#else
- struct getaddrinfo_arg arg;
- MEMZERO(&arg, struct getaddrinfo_arg, 1);
- arg.node = node;
- arg.service = service;
- arg.hints = hints;
- arg.res = &ai;
- ret = (int)(VALUE)rb_thread_call_without_gvl(nogvl_getaddrinfo, &arg, RUBY_UBF_IO, 0);
-#endif
- }
-
- if (ret == 0) {
- *res = (struct rb_addrinfo *)xmalloc(sizeof(struct rb_addrinfo));
- (*res)->allocated_by_malloc = allocated_by_malloc;
- (*res)->ai = ai;
- }
- return ret;
-}
-
void
rb_freeaddrinfo(struct rb_addrinfo *ai)
{
@@ -498,12 +464,63 @@ port_str(VALUE port, char *pbuf, size_t pbuflen, int *flags_ptr)
}
}
+static int
+rb_scheduler_getaddrinfo(VALUE scheduler, VALUE host, const char *service,
+ const struct addrinfo *hints, struct rb_addrinfo **res)
+{
+ int error, res_allocated = 0, _additional_flags = 0;
+ long i, len;
+ struct addrinfo *ai, *ai_tail = NULL;
+ char *hostp;
+ char _hbuf[NI_MAXHOST];
+ VALUE ip_addresses_array, ip_address;
+
+ ip_addresses_array = rb_fiber_scheduler_address_resolve(scheduler, host);
+
+ if (ip_addresses_array == Qundef) {
+ // Returns EAI_FAIL if the scheduler hook is not implemented:
+ return EAI_FAIL;
+ } else if (ip_addresses_array == Qnil) {
+ len = 0;
+ } else {
+ len = RARRAY_LEN(ip_addresses_array);
+ }
+
+ for(i=0; i<len; i++) {
+ ip_address = rb_ary_entry(ip_addresses_array, i);
+ hostp = host_str(ip_address, _hbuf, sizeof(_hbuf), &_additional_flags);
+ error = numeric_getaddrinfo(hostp, service, hints, &ai);
+ if (error == 0) {
+ if (!res_allocated) {
+ res_allocated = 1;
+ *res = (struct rb_addrinfo *)xmalloc(sizeof(struct rb_addrinfo));
+ (*res)->allocated_by_malloc = 1;
+ (*res)->ai = ai;
+ ai_tail = ai;
+ } else {
+ while (ai_tail->ai_next) {
+ ai_tail = ai_tail->ai_next;
+ }
+ ai_tail->ai_next = ai;
+ ai_tail = ai;
+ }
+ }
+ }
+
+ if (res_allocated) { // At least one valid result.
+ return 0;
+ } else {
+ return EAI_NONAME;
+ }
+}
+
struct rb_addrinfo*
rsock_getaddrinfo(VALUE host, VALUE port, struct addrinfo *hints, int socktype_hack)
{
struct rb_addrinfo* res = NULL;
+ struct addrinfo *ai;
char *hostp, *portp;
- int error;
+ int error = 0;
char hbuf[NI_MAXHOST], pbuf[NI_MAXSERV];
int additional_flags = 0;
@@ -515,7 +532,43 @@ rsock_getaddrinfo(VALUE host, VALUE port, struct addrinfo *hints, int socktype_h
}
hints->ai_flags |= additional_flags;
- error = rb_getaddrinfo(hostp, portp, hints, &res);
+ error = numeric_getaddrinfo(hostp, portp, hints, &ai);
+ if (error == 0) {
+ res = (struct rb_addrinfo *)xmalloc(sizeof(struct rb_addrinfo));
+ res->allocated_by_malloc = 1;
+ res->ai = ai;
+ } else {
+ VALUE scheduler = rb_fiber_scheduler_current();
+ int resolved = 0;
+
+ if (scheduler != Qnil && hostp && !(hints->ai_flags & AI_NUMERICHOST)) {
+ error = rb_scheduler_getaddrinfo(scheduler, host, portp, hints, &res);
+
+ if (error != EAI_FAIL) {
+ resolved = 1;
+ }
+ }
+
+ if (!resolved) {
+#ifdef GETADDRINFO_EMU
+ error = getaddrinfo(hostp, portp, hints, &ai);
+#else
+ struct getaddrinfo_arg arg;
+ MEMZERO(&arg, struct getaddrinfo_arg, 1);
+ arg.node = hostp;
+ arg.service = portp;
+ arg.hints = hints;
+ arg.res = &ai;
+ error = (int)(VALUE)rb_thread_call_without_gvl(nogvl_getaddrinfo, &arg, RUBY_UBF_IO, 0);
+#endif
+ if (error == 0) {
+ res = (struct rb_addrinfo *)xmalloc(sizeof(struct rb_addrinfo));
+ res->allocated_by_malloc = 0;
+ res->ai = ai;
+ }
+ }
+ }
+
if (error) {
if (hostp && hostp[strlen(hostp)-1] == '\n') {
rb_raise(rb_eSocket, "newline at the end of hostname");
diff --git a/ext/socket/rubysocket.h b/ext/socket/rubysocket.h
index f0e4f3a4a0..2a4c6e136a 100644
--- a/ext/socket/rubysocket.h
+++ b/ext/socket/rubysocket.h
@@ -139,6 +139,7 @@
#include "ruby/thread.h"
#include "ruby/util.h"
#include "sockport.h"
+#include "ruby/fiber/scheduler.h"
#ifndef HAVE_TYPE_SOCKLEN_T
typedef int socklen_t;
@@ -313,7 +314,6 @@ struct rb_addrinfo {
struct addrinfo *ai;
int allocated_by_malloc;
};
-int rb_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct rb_addrinfo **res);
void rb_freeaddrinfo(struct rb_addrinfo *ai);
VALUE rsock_freeaddrinfo(VALUE arg);
int rb_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index bebddd9e2b..09e8f2f00b 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -1279,34 +1279,10 @@ sock_s_getnameinfo(int argc, VALUE *argv, VALUE _)
rb_raise(rb_eArgError, "array size should be 3 or 4, %ld given",
RARRAY_LEN(sa));
}
- /* host */
- if (NIL_P(host)) {
- hptr = NULL;
- }
- else {
- strncpy(hbuf, StringValueCStr(host), sizeof(hbuf));
- hbuf[sizeof(hbuf) - 1] = '\0';
- hptr = hbuf;
- }
- /* port */
- if (NIL_P(port)) {
- strcpy(pbuf, "0");
- pptr = NULL;
- }
- else if (FIXNUM_P(port)) {
- snprintf(pbuf, sizeof(pbuf), "%ld", NUM2LONG(port));
- pptr = pbuf;
- }
- else {
- strncpy(pbuf, StringValueCStr(port), sizeof(pbuf));
- pbuf[sizeof(pbuf) - 1] = '\0';
- pptr = pbuf;
- }
hints.ai_socktype = (fl & NI_DGRAM) ? SOCK_DGRAM : SOCK_STREAM;
/* af */
hints.ai_family = NIL_P(af) ? PF_UNSPEC : rsock_family_arg(af);
- error = rb_getaddrinfo(hptr, pptr, &hints, &res);
- if (error) goto error_exit_addr;
+ res = rsock_getaddrinfo(host, port, &hints, 0);
sap = res->ai->ai_addr;
salen = res->ai->ai_addrlen;
}
@@ -1336,12 +1312,6 @@ sock_s_getnameinfo(int argc, VALUE *argv, VALUE _)
}
return rb_assoc_new(rb_str_new2(hbuf), rb_str_new2(pbuf));
- error_exit_addr:
- saved_errno = errno;
- if (res) rb_freeaddrinfo(res);
- errno = saved_errno;
- rsock_raise_socket_error("getaddrinfo", error);
-
error_exit_name:
saved_errno = errno;
if (res) rb_freeaddrinfo(res);