mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Add scheduler hook Addrinfo.getaddrinfo
. (#4375)
Co-authored-by: Bruno Sutic <code@brunosutic.com>
This commit is contained in:
parent
688b217706
commit
2792acc8f2
Notes:
git
2021-06-14 13:21:30 +09:00
Merged-By: ioquatix <samuel@codeotaku.com>
9 changed files with 626 additions and 278 deletions
|
@ -90,6 +90,13 @@ class Scheduler
|
|||
def timeout_after(duration, klass, *arguments, &block)
|
||||
end
|
||||
|
||||
# Resolve hostname to an array of IP addresses.
|
||||
# This hook is optional.
|
||||
# @parameter hostname [String] Example: "www.ruby-lang.org".
|
||||
# @returns [Array] An array of IPv4 and/or IPv6 address strings that the hostname resolves to.
|
||||
def address_resolve(hostname)
|
||||
end
|
||||
|
||||
# Block the calling fiber.
|
||||
# @parameter blocker [Object] What we are waiting on, informational only.
|
||||
# @parameter timeout [Numeric | Nil] The amount of time to wait for in seconds.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -44,6 +44,8 @@ VALUE rb_fiber_scheduler_io_wait_writable(VALUE scheduler, VALUE io);
|
|||
VALUE rb_fiber_scheduler_io_read(VALUE scheduler, VALUE io, VALUE buffer, size_t offset, size_t length);
|
||||
VALUE rb_fiber_scheduler_io_write(VALUE scheduler, VALUE io, VALUE buffer, size_t offset, size_t length);
|
||||
|
||||
VALUE rb_fiber_scheduler_address_resolve(VALUE scheduler, VALUE hostname);
|
||||
|
||||
RBIMPL_SYMBOL_EXPORT_END()
|
||||
|
||||
#endif /* RUBY_FIBER_SCHEDULER_H */
|
||||
|
|
14
scheduler.c
14
scheduler.c
|
@ -25,6 +25,8 @@ static ID id_io_read;
|
|||
static ID id_io_write;
|
||||
static ID id_io_wait;
|
||||
|
||||
static ID id_address_resolve;
|
||||
|
||||
void
|
||||
Init_Fiber_Scheduler(void)
|
||||
{
|
||||
|
@ -40,6 +42,8 @@ Init_Fiber_Scheduler(void)
|
|||
id_io_read = rb_intern_const("io_read");
|
||||
id_io_write = rb_intern_const("io_write");
|
||||
id_io_wait = rb_intern_const("io_wait");
|
||||
|
||||
id_address_resolve = rb_intern_const("address_resolve");
|
||||
}
|
||||
|
||||
VALUE
|
||||
|
@ -200,3 +204,13 @@ rb_fiber_scheduler_io_write(VALUE scheduler, VALUE io, VALUE buffer, size_t offs
|
|||
// We should ensure string has capacity to receive data, and then resize it afterwards.
|
||||
return rb_check_funcall(scheduler, id_io_write, 4, arguments);
|
||||
}
|
||||
|
||||
VALUE
|
||||
rb_fiber_scheduler_address_resolve(VALUE scheduler, VALUE hostname)
|
||||
{
|
||||
VALUE arguments[] = {
|
||||
hostname
|
||||
};
|
||||
|
||||
return rb_check_funcall(scheduler, id_address_resolve, 1, arguments);
|
||||
}
|
||||
|
|
|
@ -223,4 +223,10 @@ class Scheduler
|
|||
|
||||
return fiber
|
||||
end
|
||||
|
||||
def address_resolve(hostname)
|
||||
Thread.new do
|
||||
Addrinfo.getaddrinfo(hostname, nil).map(&:ip_address).uniq
|
||||
end.value
|
||||
end
|
||||
end
|
||||
|
|
281
test/fiber/test_address_resolve.rb
Normal file
281
test/fiber/test_address_resolve.rb
Normal file
|
@ -0,0 +1,281 @@
|
|||
# frozen_string_literal: true
|
||||
require 'test/unit'
|
||||
require_relative 'scheduler'
|
||||
|
||||
class TestAddressResolve < Test::Unit::TestCase
|
||||
class NullScheduler < Scheduler
|
||||
def address_resolve(*)
|
||||
end
|
||||
end
|
||||
|
||||
class StubScheduler < Scheduler
|
||||
def address_resolve(hostname)
|
||||
["1.2.3.4", "1234::1"]
|
||||
end
|
||||
end
|
||||
|
||||
def test_addrinfo_getaddrinfo_ipv4_domain_blocking
|
||||
Thread.new do
|
||||
scheduler = StubScheduler.new
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
result = Addrinfo.getaddrinfo("example.com", 80, :AF_INET, :STREAM)
|
||||
assert_equal(1, result.count)
|
||||
|
||||
ai = result.first
|
||||
assert_equal("1.2.3.4", ai.ip_address)
|
||||
assert_equal(80, ai.ip_port)
|
||||
assert_equal(Socket::AF_INET, ai.afamily)
|
||||
assert_equal(Socket::SOCK_STREAM, ai.socktype)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_addrinfo_getaddrinfo_ipv6_domain_blocking
|
||||
Thread.new do
|
||||
scheduler = StubScheduler.new
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
result = Addrinfo.getaddrinfo("example.com", 80, :AF_INET6, :STREAM)
|
||||
assert_equal(1, result.count)
|
||||
|
||||
ai = result.first
|
||||
assert_equal("1234::1", ai.ip_address)
|
||||
assert_equal(80, ai.ip_port)
|
||||
assert_equal(Socket::AF_INET6, ai.afamily)
|
||||
assert_equal(Socket::SOCK_STREAM, ai.socktype)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_addrinfo_getaddrinfo_pf_unspec_domain_blocking
|
||||
Thread.new do
|
||||
scheduler = StubScheduler.new
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
results = Addrinfo.getaddrinfo("example.com", 80, :PF_UNSPEC, :STREAM)
|
||||
assert_equal(2, results.count)
|
||||
|
||||
ai_ipv4 = results.first
|
||||
assert_equal("1.2.3.4", ai_ipv4.ip_address)
|
||||
assert_equal(80, ai_ipv4.ip_port)
|
||||
assert_equal(Socket::AF_INET, ai_ipv4.afamily)
|
||||
assert_equal(Socket::SOCK_STREAM, ai_ipv4.socktype)
|
||||
|
||||
ai_ipv6 = results.last
|
||||
assert_equal("1234::1", ai_ipv6.ip_address)
|
||||
assert_equal(80, ai_ipv6.ip_port)
|
||||
assert_equal(Socket::AF_INET6, ai_ipv6.afamily)
|
||||
assert_equal(Socket::SOCK_STREAM, ai_ipv6.socktype)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_addrinfo_getaddrinfo_full_domain_blocking
|
||||
Thread.new do
|
||||
scheduler = StubScheduler.new
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
results = Addrinfo.getaddrinfo("example.com", 80)
|
||||
assert_equal(6, results.count)
|
||||
|
||||
ai_ipv4_tcp = results[0]
|
||||
assert_equal("1.2.3.4", ai_ipv4_tcp.ip_address)
|
||||
assert_equal(80, ai_ipv4_tcp.ip_port)
|
||||
assert_equal(Socket::AF_INET, ai_ipv4_tcp.afamily)
|
||||
assert_equal(Socket::SOCK_STREAM, ai_ipv4_tcp.socktype)
|
||||
|
||||
ai_ipv4_udp = results[1]
|
||||
assert_equal("1.2.3.4", ai_ipv4_udp.ip_address)
|
||||
assert_equal(80, ai_ipv4_udp.ip_port)
|
||||
assert_equal(Socket::AF_INET, ai_ipv4_udp.afamily)
|
||||
assert_equal(Socket::SOCK_DGRAM, ai_ipv4_udp.socktype)
|
||||
|
||||
ai_ipv4_sock_raw = results[2]
|
||||
assert_equal("1.2.3.4", ai_ipv4_sock_raw.ip_address)
|
||||
assert_equal(80, ai_ipv4_sock_raw.ip_port)
|
||||
assert_equal(Socket::AF_INET, ai_ipv4_sock_raw.afamily)
|
||||
assert_equal(Socket::SOCK_RAW, ai_ipv4_sock_raw.socktype)
|
||||
|
||||
ai_ipv6_tcp = results[3]
|
||||
assert_equal("1234::1", ai_ipv6_tcp.ip_address)
|
||||
assert_equal(80, ai_ipv6_tcp.ip_port)
|
||||
assert_equal(Socket::AF_INET6, ai_ipv6_tcp.afamily)
|
||||
assert_equal(Socket::SOCK_STREAM, ai_ipv6_tcp.socktype)
|
||||
|
||||
ai_ipv6_udp = results[4]
|
||||
assert_equal("1234::1", ai_ipv6_udp.ip_address)
|
||||
assert_equal(80, ai_ipv6_udp.ip_port)
|
||||
assert_equal(Socket::AF_INET6, ai_ipv6_udp.afamily)
|
||||
assert_equal(Socket::SOCK_DGRAM, ai_ipv6_udp.socktype)
|
||||
|
||||
ai_ipv6_sock_raw = results[5]
|
||||
assert_equal("1234::1", ai_ipv6_sock_raw.ip_address)
|
||||
assert_equal(80, ai_ipv6_sock_raw.ip_port)
|
||||
assert_equal(Socket::AF_INET6, ai_ipv6_sock_raw.afamily)
|
||||
assert_equal(Socket::SOCK_RAW, ai_ipv6_sock_raw.socktype)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_addrinfo_getaddrinfo_numeric_non_blocking
|
||||
Thread.new do
|
||||
scheduler = NullScheduler.new # scheduler hook not invoked
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
result = Addrinfo.getaddrinfo("1.2.3.4", 80, :AF_INET, :STREAM)
|
||||
assert_equal(1, result.count)
|
||||
|
||||
ai = result.first
|
||||
assert_equal("1.2.3.4", ai.ip_address)
|
||||
assert_equal(80, ai.ip_port)
|
||||
assert_equal(Socket::AF_INET, ai.afamily)
|
||||
assert_equal(Socket::SOCK_STREAM, ai.socktype)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_addrinfo_getaddrinfo_any_non_blocking
|
||||
Thread.new do
|
||||
scheduler = NullScheduler.new # scheduler hook not invoked
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
result = Addrinfo.getaddrinfo("<any>", 80, :AF_INET, :STREAM)
|
||||
assert_equal(1, result.count)
|
||||
|
||||
ai = result.first
|
||||
assert_equal("0.0.0.0", ai.ip_address)
|
||||
assert_equal(80, ai.ip_port)
|
||||
assert_equal(Socket::AF_INET, ai.afamily)
|
||||
assert_equal(Socket::SOCK_STREAM, ai.socktype)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_addrinfo_getaddrinfo_localhost
|
||||
Thread.new do
|
||||
scheduler = StubScheduler.new
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
results = Addrinfo.getaddrinfo("localhost", 80, :AF_INET, :STREAM)
|
||||
assert_equal(1, results.count)
|
||||
|
||||
ai = results.first
|
||||
assert_equal("1.2.3.4", ai.ip_address)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_addrinfo_getaddrinfo_non_existing_domain_blocking
|
||||
Thread.new do
|
||||
scheduler = NullScheduler.new # invoked, returns nil
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
assert_raise(SocketError) {
|
||||
Addrinfo.getaddrinfo("non-existing-domain.abc", nil)
|
||||
}
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_addrinfo_getaddrinfo_no_host_non_blocking
|
||||
Thread.new do
|
||||
scheduler = NullScheduler.new # scheduler hook not invoked
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
result = Addrinfo.getaddrinfo(nil, 80, :AF_INET, :STREAM)
|
||||
assert_equal(1, result.count)
|
||||
|
||||
ai = result.first
|
||||
assert_equal("127.0.0.1", ai.ip_address)
|
||||
assert_equal(80, ai.ip_port)
|
||||
assert_equal(Socket::AF_INET, ai.afamily)
|
||||
assert_equal(Socket::SOCK_STREAM, ai.socktype)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_addrinfo_ip_domain_blocking
|
||||
Thread.new do
|
||||
scheduler = StubScheduler.new
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
ai = Addrinfo.ip("example.com")
|
||||
|
||||
assert_equal("1.2.3.4", ai.ip_address)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_addrinfo_tcp_domain_blocking
|
||||
Thread.new do
|
||||
scheduler = StubScheduler.new
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
ai = Addrinfo.tcp("example.com", 80)
|
||||
|
||||
assert_equal("1.2.3.4", ai.ip_address)
|
||||
assert_equal(80, ai.ip_port)
|
||||
assert_equal(Socket::AF_INET, ai.afamily)
|
||||
assert_equal(Socket::SOCK_STREAM, ai.socktype)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_addrinfo_udp_domain_blocking
|
||||
Thread.new do
|
||||
scheduler = StubScheduler.new
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
ai = Addrinfo.udp("example.com", 80)
|
||||
|
||||
assert_equal("1.2.3.4", ai.ip_address)
|
||||
assert_equal(80, ai.ip_port)
|
||||
assert_equal(Socket::AF_INET, ai.afamily)
|
||||
assert_equal(Socket::SOCK_DGRAM, ai.socktype)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
def test_ip_socket_getaddress_domain_blocking
|
||||
Thread.new do
|
||||
scheduler = StubScheduler.new
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
ip = IPSocket.getaddress("example.com")
|
||||
|
||||
assert_equal("1.2.3.4", ip)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
|
||||
# This test "hits deep" into C function call chain.
|
||||
def test_socket_getnameinfo_domain_blocking
|
||||
Thread.new do
|
||||
scheduler = StubScheduler.new
|
||||
Fiber.set_scheduler scheduler
|
||||
|
||||
Fiber.schedule do
|
||||
result = Socket.getnameinfo(["AF_INET", 80, "example.com"])
|
||||
|
||||
assert_equal([
|
||||
"1.2.3.4",
|
||||
"http"
|
||||
], result)
|
||||
end
|
||||
end.join
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue