From d832ce2e889a9c0d343f8a72681f81a1cb47b151 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Rosick=C3=BD?= Date: Wed, 29 Mar 2017 21:36:10 +0200 Subject: [PATCH 2/2] raise Net::OpenTimeout --- lib/net/imap.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/net/imap.rb b/lib/net/imap.rb index bec44ff8a5..f069ec5149 100644 --- a/lib/net/imap.rb +++ b/lib/net/imap.rb @@ -1092,7 +1092,7 @@ def initialize(host, port_or_options = {}, @open_timeout = options[:open_timeout] || 30 @read_timeout = options[:read_timeout] || 60 @parser = ResponseParser.new - @sock = Socket.tcp(@host, @port, :connect_timeout => @open_timeout) + @sock = tcp_socket(@host, @port) begin if options[:ssl] start_tls_session(options[:ssl]) @@ -1132,6 +1132,13 @@ def initialize(host, port_or_options = {}, end end + def tcp_socket(host, port) + Socket.tcp(host, port, :connect_timeout => @open_timeout) + rescue Errno::ETIMEDOUT + raise Net::OpenTimeout, "Timeout to open TCP connection to " + + "#{host}:#{port} (exceeds #{@open_timeout} seconds)" + end + def receive_responses connection_closed = false until connection_closed -- 2.11.0.windows.3