class SpiderGazelle::Signaller::SignalParser
Public Class Methods
new()
click to toggle source
# File lib/spider-gazelle/signaller/signal_parser.rb, line 9 def initialize @tokenizer = ::UV::BufferedTokenizer.new({ indicator: "\x02", delimiter: "\x03" }) @logger = Logger.instance @launchctrl = LaunchControl.instance end
Public Instance Methods
process(msg)
click to toggle source
# File lib/spider-gazelle/signaller/signal_parser.rb, line 18 def process(msg) @tokenizer.extract(msg).each do |cmd| perform cmd end end
signal(msg)
click to toggle source
These are signals that can be sent While the remote client is untrusted
# File lib/spider-gazelle/signaller/signal_parser.rb, line 26 def signal(msg) result = nil @tokenizer.extract(msg).each do |request| result = check request end result end
Protected Instance Methods
check(cmd)
click to toggle source
# File lib/spider-gazelle/signaller/signal_parser.rb, line 47 def check(cmd) comp = cmd.split(' ', 2) request = comp[0].to_sym data = comp[1] case request when :validate if data == @launchctrl.password return :validated else return :close_connection end when :reload when :Logger perform cmd end request end
perform(cmd)
click to toggle source
# File lib/spider-gazelle/signaller/signal_parser.rb, line 38 def perform(cmd) begin klass, action, data = cmd.split(' ', 3) SpiderGazelle.const_get(klass).__send__(action, data) rescue => e @logger.print_error(e, 'Error executing command in SignalParser') end end