---[[
LuCI iptables parser and query library

@cstyle	instance
]]
module "luci.sys.iptparser"

---[[
Create a new iptables parser object.

@class	function
@name	IptParser
@param	family	Number specifying the address family. 4 for IPv4, 6 for IPv6
@return	IptParser instance
]]

---[[
Find all firewall rules that match the given criteria. Expects a table with

search criteria as only argument. If args is nil or an empty table then all
rules will be returned.
]]

---[[
Rebuild the internal lookup table, for example when rules have changed

through external commands.
@class function
@name IptParser.resync
@return	nothing
]]

---[[
Find the names of all tables.

@class function
@name IptParser.tables
@return		Table of table names.
]]

---[[
Find the names of all chains within the given table name.

@class function
@name IptParser.chains
@param table	String containing the table name
@return		Table of chain names in the order they occur.
]]

---[[
Return the given firewall chain within the given table name.

@class function
@name IptParser.chain
@param table	String containing the table name
@param chain	String containing the chain name
@return		Table containing the fields "policy", "packets", "bytes"
--				and "rules". The "rules" field is a table of rule tables.
]]

---[[
Test whether the given target points to a custom chain.

@class function
@name IptParser.is_custom_target
@param target	String containing the target action
@return			Boolean indicating whether target is a custom chain.
]]