class Excon::Socket
def readline
def readline return legacy_readline if RUBY_VERSION.to_f <= 1.8_7 begin buffer = '' buffer << @socket.read_nonblock(1) while buffer[-1] != "\n" buffer rescue Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitReadable if timeout_reached('read') raise_timeout_error('read') else retry end rescue OpenSSL::SSL::SSLError => e if e.message == 'read would block' if timeout_reached('read') raise_timeout_error('read') else retry end else raise(error) end end end