Class: Puffy::Formatters::Pf::Ruleset

Inherits:
Base::Ruleset show all
Defined in:
lib/puffy/formatters/pf.rb

Overview

Pf implementation of a Puffy Ruleset formatter.

Instance Method Summary collapse

Methods inherited from Base::Ruleset

#initialize

Constructor Details

This class inherits a constructor from Puffy::Formatters::Base::Ruleset

Instance Method Details

#emit_header(policy) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/puffy/formatters/pf.rb', line 26

def emit_header(policy)
  parts = super()
  parts << 'match in all scrub (no-df)'
  parts << 'set skip on lo'
  parts << @rule_formatter.emit_rule(Puffy::Rule.new(action: policy, dir: :in, no_quick: true))
  parts << @rule_formatter.emit_rule(Puffy::Rule.new(action: policy, dir: :out, no_quick: true))
  parts
end

#emit_ruleset(rules, policy = :block) ⇒ Object

Returns a Pf String representation of the provided rules Array of Puffy::Rule.



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/puffy/formatters/pf.rb', line 9

def emit_ruleset(rules, policy = :block)
  parts = []

  parts << emit_header(policy)

  parts << super(rules.select(&:nat?))
  parts << super(rules.select(&:rdr?))
  parts << super(rules.select(&:filter?))

  ruleset = parts.reject(&:empty?).join("\n")
  "#{ruleset}\n"
end

#filename_fragmentObject



22
23
24
# File 'lib/puffy/formatters/pf.rb', line 22

def filename_fragment
  ['pf', 'pf.conf']
end