class Net::SSH::Multi::Server

Public Class Methods

new(master, host, options={}) click to toggle source
# File lib/knife-zero/net_ssh_multi_patch.rb, line 39
def initialize(master, host, options={})
  @master = master
  @options = options.dup

  ## Patched line here
  @user, @host, port = host.match(/^(?:([^;,:=]+)@|)\[?(.*?)\]?(?::(\d+)|)$/)[1,3]

  user_opt, port_opt = @options.delete(:user), @options.delete(:port)

  @user = @user || user_opt || master.default_user
  port ||= port_opt

  @options[:port] = port.to_i if port

  @gateway = @options.delete(:via)
  @failed = false
end

Public Instance Methods

keepalive_if_needed(readers, writers) click to toggle source

>> Patch

# File lib/knife-zero/net_ssh_multi_patch.rb, line 88
def keepalive_if_needed(readers, writers)
  return unless session

  listeners = session.listeners.keys
  readers = readers || []
  writers = writers || []
  @keepalive.send_as_needed(!(listeners & readers).empty? || !(listeners & writers).empty?)
end