From b79185a0d4420ac8cb0a29c93cfd6a015510b023 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 18 Nov 2025 12:55:31 -0300 Subject: [PATCH 1/3] 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 --- src/invidious/helpers/crystal_class_overrides.cr | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/invidious/helpers/crystal_class_overrides.cr b/src/invidious/helpers/crystal_class_overrides.cr index fec3f62c3..72a172553 100644 --- a/src/invidious/helpers/crystal_class_overrides.cr +++ b/src/invidious/helpers/crystal_class_overrides.cr @@ -5,7 +5,8 @@ class TCPSocket def initialize(host, 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) + super(addrinfo.family, addrinfo.type, addrinfo.protocol) + Socket.set_blocking(self.fd, blocking) connect(addrinfo, timeout: connect_timeout) do |error| close error From d6b3e4151ce93fbb5454af68b76ee4f627f16059 Mon Sep 17 00:00:00 2001 From: Fijxu Date: Sun, 30 Nov 2025 15:25:52 -0300 Subject: [PATCH 2/3] Upgrade to upstream --- src/invidious/helpers/crystal_class_overrides.cr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/invidious/helpers/crystal_class_overrides.cr b/src/invidious/helpers/crystal_class_overrides.cr index 72a172553..6da50628d 100644 --- a/src/invidious/helpers/crystal_class_overrides.cr +++ b/src/invidious/helpers/crystal_class_overrides.cr @@ -3,9 +3,9 @@ # IPv6 addresses. # class TCPSocket - def initialize(host, 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| - super(addrinfo.family, addrinfo.type, addrinfo.protocol) + super(family: addrinfo.family, type: addrinfo.type, protocol: addrinfo.protocol) Socket.set_blocking(self.fd, blocking) connect(addrinfo, timeout: connect_timeout) do |error| close From c0adb7efa1da7b5cc46be8a34420352b196be1d2 Mon Sep 17 00:00:00 2001 From: Emilien <4016501+unixfox@users.noreply.github.com> Date: Fri, 19 Dec 2025 14:47:31 +0100 Subject: [PATCH 3/3] chore: only Socket.set_blocking for > 1.18 --- .../helpers/crystal_class_overrides.cr | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/invidious/helpers/crystal_class_overrides.cr b/src/invidious/helpers/crystal_class_overrides.cr index 6da50628d..6fa89395b 100644 --- a/src/invidious/helpers/crystal_class_overrides.cr +++ b/src/invidious/helpers/crystal_class_overrides.cr @@ -3,16 +3,28 @@ # IPv6 addresses. # class TCPSocket - 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 + {% 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 - 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 # :ditto: