module Dizby::TunnelableRemote

Public Instance Methods

create_remote_tunnel(ssh, client_port) click to toggle source
# File lib/dizby/tunnel/tunnelable_remote.rb, line 9
def create_remote_tunnel(ssh, client_port)
  remote_tunnel_port = nil
  ssh.forward.remote client_port, 'localhost',
                     0, 'localhost' do |remote_port|
    remote_tunnel_port = remote_port
    :no_exception
  end

  ssh.loop { remote_tunnel_port.nil? }

  if remote_tunnel_port == :error
    raise Net::SSH::Exception, 'remote forwarding request failed'
  end

  remote_tunnel_port
end