Class: Aoandon::Semantic

Inherits:
Analysis show all
Defined in:
lib/aoandon/analysis/semantic.rb

Instance Method Summary collapse

Methods inherited from Analysis

#update

Constructor Details

#initialize(logger, options = {}) ⇒ Semantic

Returns a new instance of Semantic.



3
4
5
6
7
# File 'lib/aoandon/analysis/semantic.rb', line 3

def initialize(logger, options = {})
  super(logger, options)

  puts "Modules:  #{DynamicRule.constants.join(', ')}"
end

Instance Method Details

#test(packet) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/aoandon/analysis/semantic.rb', line 9

def test(packet)
  if defined? DynamicRule
    DynamicRule.constants.each do |rule|
      if DynamicRule.const_get(rule).control?(packet)
        dump = DynamicRule.const_get(rule).logging?(packet) ? packet : nil
        message = if DynamicRule.const_get(rule).constants.include?(:MESSAGE)
          DynamicRule.const_get(rule)::MESSAGE
        else
          nil
        end

        @logger.message(packet.time.iso8601, 'SEMANT', rule.downcase, message, dump)
      end
    end
  end
end