Sha256: 47b2d2d5b0e8c9016a3e1a11dce688bf281ab3ce13d7fa6387259bc74633d67f

Contents?: true

Size: 1.58 KB

Versions: 5

Compression:

Stored size: 1.58 KB

Contents

#!/usr/bin/env ruby

$:.push(File.expand_path(File.join('..', '..', 'lib'), __FILE__))

require 'optparse'
require 'dm-sqlite-adapter'
require 'patronus_fati'

options = {
  'database' => 'sqlite::memory:?cache=shared',
  'port'   => 2501,
  'server' => '127.0.0.1'
}

OptionParser.new(nil, 32, '  ') do |opts|
  opts.on('-d', '--db-path DB_PATH', 'Path where SQLite database will be stored') do |path|
    options['database'] = ('sqlite://%s' % File.expand_path(path))
  end

  opts.on('-s', '--server SERVER', 'IP or hostname of running kismet server.') do |srv|
    options['server'] = srv
  end

  opts.on('-p', '--port PORT', 'Port that kismet server is running on.') do |port|
    options['port'] = port.to_i
  end
end.parse(ARGV)

def exception_logger(tag)
  yield
rescue Interrupt
  PatronusFati.logger.info('Quitting...')
rescue => e
  PatronusFati.logger.error("#{tag}) Rescued from error: #{e.message}")
  e.backtrace.each do |l|
    PatronusFati.logger.error(l)
  end
end

exception_logger('process') do
  connection = PatronusFati.setup(options['server'], options['port'], options['database'])
  connection.connect

  PatronusFati.event_handler.on(:any) do |asset_type, event_type, msg, opts|
    PatronusFati.logger.info(JSON.generate({asset_type: asset_type, event_type: event_type, data: msg, additional_data: opts, timestamp: Time.now}))
  end

  while (line = connection.read_queue.pop)
    next unless (obj = PatronusFati::MessageParser.parse(line))
    responses = PatronusFati::MessageProcessor.handle(obj)

    Array(responses).each { |msg| connection.write(msg) }
  end

  connection.disconnect
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
patronus_fati-1.0.2 bin/patronus_fati
patronus_fati-1.0.1 bin/patronus_fati
patronus_fati-1.0.0 bin/patronus_fati
patronus_fati-0.9.32 bin/patronus_fati
patronus_fati-0.9.31 bin/patronus_fati