class Metasploit::Aggregator::Forwarder
Constants
- CONNECTION_TIMEOUT
Attributes
log_messages[RW]
response_queues[R]
Public Class Methods
new()
click to toggle source
# File lib/metasploit/aggregator/forwarder.rb, line 9 def initialize @log_messages = false @response_queues = {} @forwarder_mutex = Mutex.new @router = Router.instance end
Public Instance Methods
connection_info(connection)
click to toggle source
# File lib/metasploit/aggregator/forwarder.rb, line 36 def connection_info(connection) info = {} info['TIME'] = @response_queues[connection].time unless @response_queues[connection].nil? info end
connections()
click to toggle source
# File lib/metasploit/aggregator/forwarder.rb, line 21 def connections # TODO: for now before reporting connections flush stale ones flush_stale_sessions connections = {} @response_queues.each_pair do |connection, _queue| forward = 'parked' _send, _recv, console = @router.get_forward(connection) unless console.nil? forward = "#{console}" end connections[connection] = forward end connections end
forward(connection)
click to toggle source
stub for indexing
# File lib/metasploit/aggregator/forwarder.rb, line 17 def forward(connection) end
Private Instance Methods
flush_stale_sessions()
click to toggle source
# File lib/metasploit/aggregator/forwarder.rb, line 42 def flush_stale_sessions @forwarder_mutex.synchronize do stale_sessions = [] @response_queues.each_pair do |payload, queue| unless (queue.time + CONNECTION_TIMEOUT) > Time.now stale_sessions << payload end end stale_sessions.each do |payload| stale_queue = @response_queues.delete(payload) stale_queue.stop_processing unless stale_queue.nil? end end end