class Excon::Socket
def read_block(max_length)
def read_block(max_length) @socket.read(max_length) rescue OpenSSL::SSL::SSLError => error if error.message == 'read would block' select_with_timeout(@socket, :read) && retry else raise(error) end rescue Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitReadable if @read_buffer.empty? select_with_timeout(@socket, :read) && retry end rescue EOFError @eof = true end