# File lib/net/ssh/gateway.rb, line 114
  def open(host, port)
    ensure_open!

    local_port = next_port

    @session_mutex.synchronize do
      @session.forward.local(local_port, host, port)
    end

    if block_given?
      begin
        yield local_port
      ensure
        close(local_port)
      end
    else
      return local_port
    end
  rescue Errno::EADDRINUSE
    retry
  end