Replace deprecated blocking property of Socket (#5538)

* Replace deprecated `blocking` property of `Socket`

This replaces the deprecated argument `blocking` and uses
`Socket.set_blocking(fd, value)` instead.

Fixes a warning in the compiler

https://github.com/crystal-lang/crystal/pull/16033

* Upgrade to upstream

* chore: only Socket.set_blocking for > 1.18

---------

Co-authored-by: Emilien <4016501+unixfox@users.noreply.github.com>
This commit is contained in:
Fijxu 2025-12-19 10:59:42 -03:00 committed by GitHub
parent 1f5685ef92
commit bf17d53068
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,7 +3,19 @@
# IPv6 addresses. # IPv6 addresses.
# #
class TCPSocket class TCPSocket
def initialize(host, port, dns_timeout = nil, connect_timeout = nil, blocking = false, family = Socket::Family::UNSPEC) {% 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)
Addrinfo.tcp(host, port, timeout: dns_timeout, family: family) do |addrinfo|
super(family: addrinfo.family, type: addrinfo.type, protocol: addrinfo.protocol)
Socket.set_blocking(self.fd, blocking)
connect(addrinfo, timeout: connect_timeout) do |error|
close
error
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| Addrinfo.tcp(host, port, timeout: dns_timeout, family: family) do |addrinfo|
super(addrinfo.family, addrinfo.type, addrinfo.protocol, blocking) super(addrinfo.family, addrinfo.type, addrinfo.protocol, blocking)
connect(addrinfo, timeout: connect_timeout) do |error| connect(addrinfo, timeout: connect_timeout) do |error|
@ -12,6 +24,7 @@ class TCPSocket
end end
end end
end end
{% end %}
end end
# :ditto: # :ditto: