class Excon::Socket

def write_block(data)

def write_block(data)
  @socket.write(data)
rescue OpenSSL::SSL::SSLError, Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitWritable => error
  if error.is_a?(OpenSSL::SSL::SSLError) && error.message != 'write would block'
    raise error
  else
    if timeout_reached('write') 
      raise_timeout_error('write') 
    else
      retry
    end
  end
end