SigHelper: Reconnect to signature helper

Signed-off-by: Fijxu <fijxu@nadeko.net>
This commit is contained in:
Fijxu 2024-09-18 18:14:28 -03:00
parent a88a723de3
commit 84e4746265
No known key found for this signature in database
GPG Key ID: 32C1DDF333EDA6A4

View File

@ -175,8 +175,9 @@ module Invidious::SigHelper
@queue = {} of TransactionID => Transaction @queue = {} of TransactionID => Transaction
@conn : Connection @conn : Connection
@uri_or_path : String
def initialize(uri_or_path) def initialize(@uri_or_path)
@conn = Connection.new(uri_or_path) @conn = Connection.new(uri_or_path)
listen listen
end end
@ -186,10 +187,26 @@ module Invidious::SigHelper
LOGGER.debug("SigHelper: Multiplexor listening") LOGGER.debug("SigHelper: Multiplexor listening")
# TODO: reopen socket if unexpectedly closed
spawn do spawn do
loop do loop do
begin
receive_data receive_data
rescue ex
LOGGER.info("SigHelper: Connection to helper died with '#{ex.message}' trying to reconnect...")
# We close the socket because for some reason is not closed.
@conn.close
loop do
begin
@conn = Connection.new(@uri_or_path)
LOGGER.info("SigHelper: Reconnected to SigHelper!")
rescue ex
LOGGER.debug("SigHelper: Reconnection to helper unsuccessful with error '#{ex.message}'. Retrying")
sleep 500.milliseconds
next
end
break if !@conn.closed?
end
end
Fiber.yield Fiber.yield
end end
end end