Module: PryRemoteEm::Client::Broker

Includes:
EM::Deferrable, Generic
Defined in:
lib/pry-remote-em/client/broker.rb

Instance Method Summary collapse

Methods included from Generic

#connection_completed, #initialize, #opts, #start_tls

Methods included from Proto

#receive_auth, #receive_clear_buffer, #receive_completion, #receive_data, #receive_msg, #receive_msg_bcast, #receive_object, #receive_prompt, #receive_proxy_connection, #receive_raw, #receive_register_server, #receive_server_list, #receive_server_reload_list, #receive_shell_cmd, #receive_shell_data, #receive_shell_result, #receive_shell_sig, #receive_start_tls, #receive_unknown, #receive_unregister_server, #send_auth, #send_banner, #send_clear_buffer, #send_completion, #send_heatbeat, #send_msg, #send_msg_bcast, #send_object, #send_prompt, #send_proxy_connection, #send_raw, #send_register_server, #send_server_list, #send_server_reload_list, #send_shell_cmd, #send_shell_data, #send_shell_result, #send_shell_sig, #send_start_tls, #send_unregister_server

Instance Method Details

#logObject



9
10
11
12
# File 'lib/pry-remote-em/client/broker.rb', line 9

def log
  return opts[:logger] if opts[:logger]
  @log ||= Logger.new(STDERR)
end

#receive_banner(name, version, scheme) ⇒ Object



14
15
16
17
18
# File 'lib/pry-remote-em/client/broker.rb', line 14

def receive_banner(name, version, scheme)
  if super(name, version, scheme)
    @opts[:tls] ? start_tls : succeed(self)
  end
end

#ssl_handshake_completedObject



20
21
22
# File 'lib/pry-remote-em/client/broker.rb', line 20

def ssl_handshake_completed
  succeed(self)
end

#unbindObject



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/pry-remote-em/client/broker.rb', line 24

def unbind
  return if EventMachine.stopping?

  # Give the existing broker a little time to release the port. Even if the
  # restart here fails the next time a server tries to register, a new client
  # will be created; when that fails Broker#restart will be called again.
  timeout = ENV['PRYEMBROKERTIMEOUT'].nil? || ENV['PRYEMBROKERTIMEOUT'].empty? ? RECONNECT_TO_BROKER_TIMEOUT : ENV['PRYEMBROKERTIMEOUT']
  log.info("[pry-remote-em broker-client] broker connection unbound; starting a new one in a #{timeout} seconds")
  EM::Timer.new(timeout) do
    PryRemoteEm::Broker.restart
  end
end