1
0
mirror of https://github.com/fwbuilder/fwbuilder synced 2026-03-19 17:57:22 +01:00

see #2097 showing "interface" columns in iptables NAT ruels

This commit is contained in:
Vadim Kurland 2011-02-17 15:27:37 -08:00
parent f8b668e691
commit cf17bb995c
5 changed files with 8354 additions and 6748 deletions

View File

@ -764,47 +764,55 @@ bool getStatelessFlagForAction(PolicyRule *rule)
* Returns translatable string - name of the corresponding rule element. * Returns translatable string - name of the corresponding rule element.
*/ */
QString getReadableRuleElementName(const string &platform, QString getReadableRuleElementName(const string &platform,
const string &rule_element_type_name) const string &re_type_name)
{ {
bool nat_intf_in = Resources::getTargetCapabilityBool(
platform, "inbound_interface_in_nat");
bool nat_intf_out = Resources::getTargetCapabilityBool(
platform, "outbound_interface_in_nat");
// The following map TYPENAME of RuleElement classes to readable // The following map TYPENAME of RuleElement classes to readable
// translatable names. // translatable names.
if (rule_element_type_name == "Src") return QObject::tr("Source"); if (re_type_name == "Src") return QObject::tr("Source");
if (rule_element_type_name == "Dst") return QObject::tr("Destination"); if (re_type_name == "Dst") return QObject::tr("Destination");
if (rule_element_type_name == "Srv") return QObject::tr("Service"); if (re_type_name == "Srv") return QObject::tr("Service");
if (rule_element_type_name == "Itf") return QObject::tr("Interface"); if (re_type_name == "Itf") return QObject::tr("Interface");
if (rule_element_type_name == "When") return QObject::tr("Time"); if (re_type_name == "When") return QObject::tr("Time");
if (rule_element_type_name == "OSrc") return QObject::tr("Original Src"); if (re_type_name == "OSrc") return QObject::tr("Original Src");
if (rule_element_type_name == "ODst") return QObject::tr("Original Dst"); if (re_type_name == "ODst") return QObject::tr("Original Dst");
if (rule_element_type_name == "OSrv") return QObject::tr("Original Srv"); if (re_type_name == "OSrv") return QObject::tr("Original Srv");
if (rule_element_type_name == "TSrc") return QObject::tr("Translated Src"); if (re_type_name == "TSrc") return QObject::tr("Translated Src");
if (rule_element_type_name == "TDst") return QObject::tr("Translated Dst"); if (re_type_name == "TDst") return QObject::tr("Translated Dst");
if (rule_element_type_name == "TSrv") return QObject::tr("Translated Srv"); if (re_type_name == "TSrv") return QObject::tr("Translated Srv");
if (platform == "pf") if (nat_intf_in != nat_intf_out)
{ {
// For PF I hide inbound interface and show outbound interface // For some platforms I only show one interface column in nat
// column with header "Interface" // rules, in this case nat_intf_in and nat_intf_out have
if (rule_element_type_name == "ItfInb") return QObject::tr("Interface"); // different values. For example, for PF I hide inbound
if (rule_element_type_name == "ItfOutb") return QObject::tr("Interface"); // interface and show outbound interface column. Columns title
// should then be just "Interface"
if (re_type_name == "ItfInb") return QObject::tr("Interface");
if (re_type_name == "ItfOutb") return QObject::tr("Interface");
} else } else
{ {
if (rule_element_type_name == "ItfInb") return QObject::tr("Inbound Interface"); if (re_type_name == "ItfInb") return QObject::tr("Interface In");
if (rule_element_type_name == "ItfOutb") return QObject::tr("Outbound Interface"); if (re_type_name == "ItfOutb") return QObject::tr("Interface Out");
} }
if (rule_element_type_name == "RDst") return QObject::tr("Destination"); if (re_type_name == "RDst") return QObject::tr("Destination");
if (rule_element_type_name == "RGtw") return QObject::tr("Gateway"); if (re_type_name == "RGtw") return QObject::tr("Gateway");
if (rule_element_type_name == "RItf") return QObject::tr("Interface"); if (re_type_name == "RItf") return QObject::tr("Interface");
// as of v3.0.x the following are not real rule elements (not separate // as of v3.0.x the following are not real rule elements (not separate
// classes with names) but just attributes of corresponding Rule class. // classes with names) but just attributes of corresponding Rule class.
if (rule_element_type_name == "Direction") return QObject::tr("Direction"); if (re_type_name == "Direction") return QObject::tr("Direction");
if (rule_element_type_name == "Action") return QObject::tr("Action"); if (re_type_name == "Action") return QObject::tr("Action");
if (rule_element_type_name == "Options") return QObject::tr("Options"); if (re_type_name == "Options") return QObject::tr("Options");
if (rule_element_type_name == "Metric") return QObject::tr("Metric"); if (re_type_name == "Metric") return QObject::tr("Metric");
if (rule_element_type_name == "Comment") return QObject::tr("Comment"); if (re_type_name == "Comment") return QObject::tr("Comment");
return QString(); return QString();
} }

View File

@ -39,6 +39,8 @@
<options_in_policy>True</options_in_policy> <options_in_policy>True</options_in_policy>
<supports_nat>True</supports_nat> <supports_nat>True</supports_nat>
<actions_in_nat>True</actions_in_nat> <actions_in_nat>True</actions_in_nat>
<inbound_interface_in_nat>True</inbound_interface_in_nat>
<outbound_interface_in_nat>True</outbound_interface_in_nat>
<supports_time>True</supports_time> <supports_time>True</supports_time>
<supports_accounting>True</supports_accounting> <supports_accounting>True</supports_accounting>
<security_levels>False</security_levels> <security_levels>False</security_levels>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,9 +2,9 @@
# #
# This is automatically generated file. DO NOT MODIFY ! # This is automatically generated file. DO NOT MODIFY !
# #
# Firewall Builder fwb_ipt v4.2.0.3477 # Firewall Builder fwb_ipt v4.2.0.3480
# #
# Generated Tue Feb 15 14:28:49 2011 PST by vadim # Generated Thu Feb 17 15:16:56 2011 PST by vadim
# #
# files: * rc.firewall.local /etc/rc.d//rc.firewall.local # files: * rc.firewall.local /etc/rc.d//rc.firewall.local
# #