diff --git a/lib/net/ftp.rb b/lib/net/ftp.rb index e1bd4be..61d37eb 100644 --- a/lib/net/ftp.rb +++ b/lib/net/ftp.rb @@ -356,19 +356,14 @@ def return_code=(s) # :nodoc: # SOCKS_SERVER, then a SOCKSSocket is returned, else a Socket is # returned. def open_socket(host, port) # :nodoc: - if defined? SOCKSSocket and ENV["SOCKS_SERVER"] - @passive = true - Timeout.timeout(@open_timeout, OpenTimeout) do + return Timeout.timeout(@open_timeout, OpenTimeout) { + if defined? SOCKSSocket and ENV["SOCKS_SERVER"] + @passive = true SOCKSSocket.open(host, port) + else + Socket.tcp(host, port) end - else - begin - Socket.tcp host, port, nil, nil, connect_timeout: @open_timeout - rescue Errno::ETIMEDOUT #raise Net:OpenTimeout instead for compatibility with previous versions - raise Net::OpenTimeout, "Timeout to open TCP connection to "\ - "#{host}:#{port} (exceeds #{@open_timeout} seconds)" - end - end + } end private :open_socket