Class: Netfilter::Chain
- Inherits:
-
Object
- Object
- Netfilter::Chain
- Defined in:
- lib/netfilter/chain.rb
Instance Attribute Summary collapse
-
#filters ⇒ Object
Returns the value of attribute filters.
-
#name ⇒ Object
Returns the value of attribute name.
-
#table ⇒ Object
Returns the value of attribute table.
Class Method Summary collapse
Instance Method Summary collapse
- #append(definition) ⇒ Object
- #commands ⇒ Object
- #export ⇒ Object
- #filter(definition) ⇒ Object
-
#initialize(table, name) {|_self| ... } ⇒ Chain
constructor
A new instance of Chain.
- #insert(definition) ⇒ Object
- #name_as_argument ⇒ Object
- #native? ⇒ Boolean
Constructor Details
#initialize(table, name) {|_self| ... } ⇒ Chain
Returns a new instance of Chain.
17 18 19 20 21 22 23 |
# File 'lib/netfilter/chain.rb', line 17 def initialize(table, name) self.table = table self.name = name.to_s self.filters = [] self.name.upcase! if native? yield(self) if block_given? end |
Instance Attribute Details
#filters ⇒ Object
Returns the value of attribute filters.
4 5 6 |
# File 'lib/netfilter/chain.rb', line 4 def filters @filters end |
#name ⇒ Object
Returns the value of attribute name.
4 5 6 |
# File 'lib/netfilter/chain.rb', line 4 def name @name end |
#table ⇒ Object
Returns the value of attribute table.
3 4 5 |
# File 'lib/netfilter/chain.rb', line 3 def table @table end |
Class Method Details
Instance Method Details
#append(definition) ⇒ Object
25 26 27 |
# File 'lib/netfilter/chain.rb', line 25 def append(definition) filters << Filter.new(self, "append", definition) end |
#commands ⇒ Object
45 46 47 48 49 50 51 52 |
# File 'lib/netfilter/chain.rb', line 45 def commands [].tap do |commands| commands << ["--new-chain #{name_as_argument}"] unless native? filters.each do |filter| commands << ["--#{filter.type} #{name_as_argument}", *filter.args] end end end |
#export ⇒ Object
54 55 56 57 58 59 |
# File 'lib/netfilter/chain.rb', line 54 def export { :name => name, :filters => filters.map{ |filter| filter.export }, } end |
#filter(definition) ⇒ Object
33 34 35 |
# File 'lib/netfilter/chain.rb', line 33 def filter(definition) append(definition) end |
#insert(definition) ⇒ Object
29 30 31 |
# File 'lib/netfilter/chain.rb', line 29 def insert(definition) filters.unshift Filter.new(self, "append", definition) end |
#name_as_argument ⇒ Object
41 42 43 |
# File 'lib/netfilter/chain.rb', line 41 def name_as_argument (namespace && !native?) ? "#{namespace}-#{name}" : name end |
#native? ⇒ Boolean
37 38 39 |
# File 'lib/netfilter/chain.rb', line 37 def native? NATIVE_CHAINS.include?(name.downcase) end |