class Tablomat::IPTables::Table
Attributes
active[R]
chains[R]
name[R]
owned[RW]
system[R]
Public Class Methods
new(system, name, owned = true)
click to toggle source
# File lib/tablomat/iptables/table.rb, line 12 def initialize(system, name, owned = true) @system = system @name = name @chains = {} # whether this table is owned/created by us or external @owned = owned @active = false activate if @system.active end
Public Instance Methods
activate(override = false)
click to toggle source
# File lib/tablomat/iptables/table.rb, line 57 def activate(override = false) return unless @owned || override @active = true return if override @chains.each do |_name, chain| chain.activate end end
append(chain_name, data)
click to toggle source
# File lib/tablomat/iptables/table.rb, line 47 def append(chain_name, data) chain(chain_name).append(data) end
chain(name, owned = true, &block)
click to toggle source
# File lib/tablomat/iptables/table.rb, line 26 def chain(name, owned = true, &block) key = get_key name (@chains[key] || Chain.new(self, name, owned)).tap do |chain| @chains[key] = chain block&.call(chain) end end
chain_exists(name)
click to toggle source
# File lib/tablomat/iptables/table.rb, line 34 def chain_exists(name) key = get_key name return true if @chains.key? key false end
deactivate(override = false)
click to toggle source
# File lib/tablomat/iptables/table.rb, line 68 def deactivate(override = false) return unless @owned || override @active = false return if override @chains.each do |_name, chain| chain.deactivate end end
delete(chain_name, data)
click to toggle source
# File lib/tablomat/iptables/table.rb, line 51 def delete(chain_name, data) chain chain_name do |chain| chain.delete(data) end end
get_key(name)
click to toggle source
# File lib/tablomat/iptables/table.rb, line 22 def get_key(name) name.to_s.downcase[0, 28] end
insert(chain_name, data, pos)
click to toggle source
# File lib/tablomat/iptables/table.rb, line 41 def insert(chain_name, data, pos) chain chain_name do |chain| chain.insert(data, pos) end end
print()
click to toggle source
# File lib/tablomat/iptables/table.rb, line 79 def print require 'pp' pp self end