chore: only Socket.set_blocking for > 1.18

This commit is contained in:
Emilien 2025-12-19 14:47:31 +01:00
parent d6b3e4151c
commit c0adb7efa1

View File

@ -3,6 +3,7 @@
# IPv6 addresses. # IPv6 addresses.
# #
class TCPSocket class TCPSocket
{% if compare_versions(Crystal::VERSION, "1.18.0-dev") >= 0 %}
def initialize(host : String, port, dns_timeout = nil, connect_timeout = nil, blocking = false, family = Socket::Family::UNSPEC) def initialize(host : String, port, dns_timeout = nil, connect_timeout = nil, blocking = false, family = Socket::Family::UNSPEC)
Addrinfo.tcp(host, port, timeout: dns_timeout, family: family) do |addrinfo| Addrinfo.tcp(host, port, timeout: dns_timeout, family: family) do |addrinfo|
super(family: addrinfo.family, type: addrinfo.type, protocol: addrinfo.protocol) super(family: addrinfo.family, type: addrinfo.type, protocol: addrinfo.protocol)
@ -13,6 +14,17 @@ class TCPSocket
end end
end end
end end
{% else %}
def initialize(host : String, port, dns_timeout = nil, connect_timeout = nil, blocking = false, family = Socket::Family::UNSPEC)
Addrinfo.tcp(host, port, timeout: dns_timeout, family: family) do |addrinfo|
super(addrinfo.family, addrinfo.type, addrinfo.protocol, blocking)
connect(addrinfo, timeout: connect_timeout) do |error|
close
error
end
end
end
{% end %}
end end
# :ditto: # :ditto: