Human-readable names for actions come from platform resource files. This way, we can have aliases for actions depending on the platform. Refs #84

This commit is contained in:
Vadim Kurland
2009-10-20 21:48:53 +00:00
parent 7d672c2169
commit 65524cde81
22 changed files with 318 additions and 241 deletions
+1 -1
View File
@@ -1 +1 @@
#define BUILD_NUM 1621
#define BUILD_NUM 1622
+4
View File
@@ -1,5 +1,9 @@
2009-10-20 vadim <vadim@vk.crocodile.org>
* platforms.cpp (getActionNameForPlatform): Human-readable names
for Policy and NAT rule actions come from the platform .xml
resource file (attribute "description").
* Support for branch rules in NAT rule sets. Currently only
supported on iptables and PF. NAT rules get column "Action" for
these platforms, with possible acctions "Translate" and "Branch".
+3 -10
View File
@@ -32,6 +32,7 @@
#include "ActionsDialog.h"
#include "FWWindow.h"
#include "FWObjectDropArea.h"
#include "DialogFactory.h"
#include "fwbuilder/Library.h"
#include "fwbuilder/Interface.h"
@@ -174,7 +175,6 @@ void ActionsDialog::applyChanges()
data.saveAll();
PolicyRule *policy_rule = PolicyRule::cast(rule);
NATRule *nat_rule = NATRule::cast(rule);
FWOptions *ropt = rule->getOptionsObject();
@@ -248,7 +248,6 @@ void ActionsDialog::setRule(Rule *r)
rule = r;
PolicyRule *policy_rule = PolicyRule::cast(r);
NATRule *nat_rule = NATRule::cast(r);
FWObject *o = r;
while (o!=NULL && Firewall::cast(o)==NULL) o = o->getParent();
@@ -261,13 +260,7 @@ void ActionsDialog::setRule(Rule *r)
platform=f->getStr("platform");
string act;
if (policy_rule) act = policy_rule->getActionAsString();
if (nat_rule)
{
act = nat_rule->getActionAsString();
if (act == "Branch") act = "NATBranch";
}
string act = getRuleAction(r).toStdString();
help_name = string(platform + "_" + act).c_str();
@@ -280,7 +273,7 @@ void ActionsDialog::setRule(Rule *r)
fillInterfaces(m_dialog->ipf_route_opt_if);
fillInterfaces(m_dialog->pf_route_opt_if);
editor = Resources::getActionEditor(platform, act);
editor = DialogFactory::getActionDialogPageName(f, r);
branchNameInput = NULL;
+14
View File
@@ -28,6 +28,7 @@
#include "../../config.h"
#include "global.h"
#include "utils.h"
#include "platforms.h"
#include "DialogFactory.h"
@@ -350,4 +351,17 @@ QWidget *DialogFactory::createClusterGroupOptionsDialog(QWidget *parent,
return NULL;
}
string DialogFactory::getActionDialogPageName(Firewall *fw, Rule *rule)
{
string platform = fw->getStr("platform");
string act = getRuleAction(rule).toStdString();
string editor_page;
try
{
editor_page = Resources::getTargetCapabilityStr(
platform, "actions/" + act + "/editor_page");
} catch (FWException &ex) { }
return editor_page;
}
+8
View File
@@ -33,6 +33,8 @@
namespace libfwbuilder {
class FWObject;
class FWException;
class Firewall;
class Rule;
};
@@ -51,6 +53,12 @@ class DialogFactory {
throw(libfwbuilder::FWException);
static QWidget *createClusterGroupOptionsDialog(QWidget *parent, libfwbuilder::FWObject *o)
throw(libfwbuilder::FWException);
static std::string getActionDialogPageName(libfwbuilder::Firewall *fw,
libfwbuilder::Rule *rule);
};
#endif
+29 -13
View File
@@ -36,6 +36,7 @@
#include "FWObjectPropertiesFactory.h"
#include "platforms.h"
#include "DialogFactory.h"
#include "fwbuilder/AddressRange.h"
#include "fwbuilder/AddressTable.h"
@@ -735,13 +736,13 @@ QString FWObjectPropertiesFactory::getObjectPropertiesDetailed(FWObject *obj,
* Do not translate literals 'pipe', 'queue', 'divert' below, these refer
* to actual ipfw parameters and should not be localized.
*/
QString FWObjectPropertiesFactory::getRuleActionProperties(PolicyRule *rule)
QString FWObjectPropertiesFactory::getRuleActionProperties(Rule *rule)
{
QString par = "";
if (rule!=NULL)
{
string act = rule->getActionAsString();
QString act = getRuleAction(rule);
FWObject *o = rule;
while (o!=NULL && Firewall::cast(o)==NULL) o=o->getParent();
@@ -751,22 +752,24 @@ QString FWObjectPropertiesFactory::getRuleActionProperties(PolicyRule *rule)
string platform=f->getStr("platform");
FWOptions *ropt = rule->getOptionsObject();
string editor=Resources::getActionEditor(platform,act);
string editor = DialogFactory::getActionDialogPageName(f, rule);
if (editor!="None")
if (editor == "None") return "";
if (PolicyRule::isA(rule))
{
switch (rule->getAction())
switch (PolicyRule::cast(rule)->getAction())
{
case PolicyRule::Reject:
par = ropt->getStr("action_on_reject").c_str();
break;
case PolicyRule::Tag:
{
FWObject *tag_object = rule->getTagObject();
FWObject *tag_object = PolicyRule::cast(rule)->getTagObject();
if (tag_object)
par = tag_object->getName().c_str();
else
par = rule->getTagValue().c_str();
par = PolicyRule::cast(rule)->getTagValue().c_str();
break;
}
case PolicyRule::Accounting :
@@ -847,25 +850,38 @@ QString FWObjectPropertiesFactory::getRuleActionProperties(PolicyRule *rule)
default : {}
}
}
if (NATRule::isA(rule))
{
switch (NATRule::cast(rule)->getAction())
{
case NATRule::Translate:
break;
case NATRule::Branch:
FWObject *branch_ruleset = rule->getBranch();
if (branch_ruleset)
par = branch_ruleset->getName().c_str();
break;
}
}
}
return par;
}
QString FWObjectPropertiesFactory::getRuleActionPropertiesRich(PolicyRule *rule)
QString FWObjectPropertiesFactory::getRuleActionPropertiesRich(Rule *rule)
{
FWObject *p=rule;
while (p!=NULL && !Firewall::cast(p)) p=p->getParent();
assert(p!=NULL);
string platform=p->getStr("platform");
QString act = getActionNameForPlatform(rule->getAction(),platform.c_str());
QString act = getActionNameForPlatform(Firewall::cast(p), rule);
QString par = getRuleActionProperties(rule);
QString res = QObject::tr("<b>Action :</b> ")+act+"<br>\n";
QString res = QObject::tr("<b>Action :</b> %1<br>").arg(act);
if (!par.isEmpty())
{
res+=QObject::tr("<b>Parameter:</b> ")+par;
res += QObject::tr("<b>Parameter:</b> ")+par;
}
return res;
}
+2 -2
View File
@@ -51,8 +51,8 @@ class FWObjectPropertiesFactory {
bool tooltip=false,
bool accentName=true,
bool richText=true);
static QString getRuleActionProperties(libfwbuilder::PolicyRule *rule);
static QString getRuleActionPropertiesRich(libfwbuilder::PolicyRule *rule);
static QString getRuleActionProperties(libfwbuilder::Rule *rule);
static QString getRuleActionPropertiesRich(libfwbuilder::Rule *rule);
static QString getPolicyRuleOptions(libfwbuilder::Rule *rule);
static QString getNATRuleOptions(libfwbuilder::Rule *rule);
+3 -3
View File
@@ -33,6 +33,7 @@
#include "FindObjectWidget.h"
#include "FindWhereUsedWidget.h"
#include "FWBTree.h"
#include "platforms.h"
#include "fwbuilder/Firewall.h"
#include "fwbuilder/RuleSet.h"
@@ -185,10 +186,9 @@ void FWWindow::buildEditorTitleAndIcon(libfwbuilder::FWObject *obj,
{
FWObject *obj_for_icon = obj;
if (ruleset) obj_for_icon = ruleset;
if (rule && PolicyRule::isA(rule) && t == ObjectEditor::optAction)
if (rule && t == ObjectEditor::optAction)
{
QString icn = ":/Icons/" ;
icn += PolicyRule::cast(rule)->getActionAsString().c_str();
QString icn = ":/Icons/" + getRuleAction(rule);
LoadPixmap(icn, *pm); // in utils.cpp
} else
FWBTree().setObjectIcon(obj_for_icon, pm, false);
+2
View File
@@ -49,6 +49,8 @@
<file alias="Icons/Both-tree" >Icons/both_16.png</file>
<file alias="Icons/Branch-tree" >Icons/branch_16.png</file>
<file alias="Icons/Branch" >Icons/branch_25.png</file>
<file alias="Icons/NATBranch-tree" >Icons/branch_16.png</file>
<file alias="Icons/NATBranch" >Icons/branch_25.png</file>
<file>Icons/cancel.png</file>
<file alias="Icons/Classify-tree" >Icons/classify_16.png</file>
<file alias="Icons/Classify" >Icons/classify_25.png</file>
-17
View File
@@ -1190,16 +1190,6 @@ QStringList PolicyModel::getRuleOptions(Rule* r) const
return res;
}
QString PolicyModel::getRuleAction(Rule* r) const
{
PolicyRule *policy_rule = PolicyRule::cast( r );
NATRule *nat_rule = NATRule::cast( r );
QString res;
if (policy_rule) res = policy_rule->getActionAsString().c_str();
if (nat_rule) res = nat_rule->getActionAsString().c_str();
return res;
}
void PolicyModel::initRule(Rule *new_rule, Rule *old_rule)
{
//if (fwbdebug) qDebug() << "PolicyModel::initRule";
@@ -1296,13 +1286,6 @@ QStringList NatModel::getRuleOptions(Rule* r) const
return res;
}
QString NatModel::getRuleAction(Rule* r) const
{
NATRule *natRule = NATRule::cast( r );
QString res = natRule->getActionAsString().c_str();
return res;
}
void NatModel::initRule(Rule *new_rule, Rule *old_rule)
{
//if (fwbdebug) qDebug() << "NatModel::initRule";
-2
View File
@@ -195,7 +195,6 @@ private:
QVariant getRuleDataForDisplayRole(const QModelIndex &index, RuleNode* node) const;
QString getRuleDirection(libfwbuilder::Rule* r) const;
QStringList getRuleOptions(libfwbuilder::Rule* r) const;
QString getRuleAction(libfwbuilder::Rule* r) const;
void configure();
};
@@ -216,7 +215,6 @@ private:
QVariant getRuleDataForDisplayRole(const QModelIndex &index, RuleNode* node) const;
QStringList getRuleOptions(libfwbuilder::Rule* r) const;
QString getRuleAction(libfwbuilder::Rule* r) const;
void configure();
};
+26 -26
View File
@@ -364,16 +364,16 @@ void RuleSetView::addColumnRelatedMenu(QMenu *menu, const QModelIndex &index,
{
if (Resources::isTargetActionSupported(platform,"Translate"))
{
action_name = getNatActionNameForPlatform(NATRule::Translate,
platform.c_str());
action_name = getActionNameForPlatform(
f, NATRule::getActionAsString(NATRule::Translate));
menu->addAction( QIcon(LoadPixmap(":/Icons/Continue")),
action_name,
this, SLOT( changeActionToTranslate() ));
}
if (Resources::isTargetActionSupported(platform,"Branch"))
{
action_name = getNatActionNameForPlatform(NATRule::Branch,
platform.c_str());
action_name = getActionNameForPlatform(
f, NATRule::getActionAsString(NATRule::Branch));
menu->addAction( QIcon(LoadPixmap(":/Icons/Branch")),
action_name,
this, SLOT( changeActionToNATBranch() ));
@@ -383,88 +383,88 @@ void RuleSetView::addColumnRelatedMenu(QMenu *menu, const QModelIndex &index,
{
if (Resources::isTargetActionSupported(platform,"Accept"))
{
action_name = getActionNameForPlatform(PolicyRule::Accept,
platform.c_str());
action_name = getActionNameForPlatform(
f, PolicyRule::getActionAsString(PolicyRule::Accept));
menu->addAction( QIcon(LoadPixmap(":/Icons/Accept")),
action_name,
this, SLOT( changeActionToAccept() ));
}
if (Resources::isTargetActionSupported(platform,"Deny"))
{
action_name = getActionNameForPlatform(PolicyRule::Deny,
platform.c_str());
action_name = getActionNameForPlatform(
f, PolicyRule::getActionAsString(PolicyRule::Deny));
menu->addAction( QIcon(LoadPixmap(":/Icons/Deny")),
action_name,
this, SLOT( changeActionToDeny() ));
}
if (Resources::isTargetActionSupported(platform,"Reject"))
{
action_name = getActionNameForPlatform(PolicyRule::Reject,
platform.c_str());
action_name = getActionNameForPlatform(
f, PolicyRule::getActionAsString(PolicyRule::Reject));
menu->addAction( QIcon(LoadPixmap(":/Icons/Reject")),
action_name,
this, SLOT( changeActionToReject() ));
}
if (Resources::isTargetActionSupported(platform,"Accounting"))
{
action_name = getActionNameForPlatform(PolicyRule::Accounting,
platform.c_str());
action_name = getActionNameForPlatform(
f, PolicyRule::getActionAsString(PolicyRule::Accounting));
menu->addAction( QIcon(LoadPixmap(":/Icons/Accounting")),
action_name,
this, SLOT( changeActionToAccounting() ));
}
if (Resources::isTargetActionSupported(platform,"Pipe"))
{
action_name = getActionNameForPlatform(PolicyRule::Pipe,
platform.c_str());
action_name = getActionNameForPlatform(
f, PolicyRule::getActionAsString(PolicyRule::Pipe));
menu->addAction( QIcon(LoadPixmap(":/Icons/Pipe")),
action_name,
this, SLOT( changeActionToPipe() ));
}
if (Resources::isTargetActionSupported(platform,"Tag"))
{
action_name = getActionNameForPlatform(PolicyRule::Tag,
platform.c_str());
action_name = getActionNameForPlatform(
f, PolicyRule::getActionAsString(PolicyRule::Tag));
menu->addAction( QIcon(LoadPixmap(":/Icons/Tag")),
action_name,
this, SLOT( changeActionToTag() ));
}
if (Resources::isTargetActionSupported(platform,"Classify"))
{
action_name = getActionNameForPlatform(PolicyRule::Classify,
platform.c_str());
action_name = getActionNameForPlatform(
f, PolicyRule::getActionAsString(PolicyRule::Classify));
menu->addAction( QIcon(LoadPixmap(":/Icons/Classify")),
action_name,
this, SLOT( changeActionToClassify() ));
}
if (Resources::isTargetActionSupported(platform,"Custom"))
{
action_name = getActionNameForPlatform(PolicyRule::Custom,
platform.c_str());
action_name = getActionNameForPlatform(
f, PolicyRule::getActionAsString(PolicyRule::Custom));
menu->addAction( QIcon(LoadPixmap(":/Icons/Custom")),
action_name,
this, SLOT( changeActionToCustom() ));
}
if (Resources::isTargetActionSupported(platform,"Branch"))
{
action_name = getActionNameForPlatform(PolicyRule::Branch,
platform.c_str());
action_name = getActionNameForPlatform(
f, PolicyRule::getActionAsString(PolicyRule::Branch));
menu->addAction( QIcon(LoadPixmap(":/Icons/Branch")),
action_name,
this, SLOT( changeActionToBranch() ));
}
if (Resources::isTargetActionSupported(platform,"Route"))
{
action_name = getActionNameForPlatform(PolicyRule::Route,
platform.c_str());
action_name = getActionNameForPlatform(
f, PolicyRule::getActionAsString(PolicyRule::Route));
menu->addAction( QIcon(LoadPixmap(":/Icons/Route")),
action_name,
this, SLOT( changeActionToRoute() ));
}
if (Resources::isTargetActionSupported(platform,"Continue"))
{
action_name = getActionNameForPlatform(PolicyRule::Continue,
platform.c_str());
action_name = getActionNameForPlatform(
f, PolicyRule::getActionAsString(PolicyRule::Continue));
menu->addAction( QIcon(LoadPixmap(":/Icons/Continue")),
action_name,
this, SLOT( changeActionToContinue() ));
+25 -66
View File
@@ -653,6 +653,16 @@ QString getScreenName(QString s, const QStringList &sl)
return res;
}
QString getRuleAction(Rule *rule)
{
PolicyRule *policy_rule = PolicyRule::cast(rule);
NATRule *nat_rule = NATRule::cast(rule);
string act;
if (policy_rule) act = policy_rule->getActionAsString();
if (nat_rule) act = nat_rule->getActionAsString();
return act.c_str();
}
/*
* will remap names of some actions to make it clear what commands or
* configuration language keywords they will be translated to for the
@@ -663,77 +673,26 @@ QString getScreenName(QString s, const QStringList &sl)
* files and are not pulled using Rule::getActionAsString.
*/
QString getActionNameForPlatform(PolicyRule::Action action,
const QString &platform)
QString getActionNameForPlatform(Firewall *fw, Rule *rule)
{
QString action_name = "";
switch (action)
{
case PolicyRule::Accept: action_name = QObject::tr("Accept"); break;
case PolicyRule::Deny: action_name = QObject::tr("Deny"); break;
case PolicyRule::Reject: action_name = QObject::tr("Reject"); break;
case PolicyRule::Scrub: action_name = QObject::tr("Scrub"); break;
case PolicyRule::Return: action_name = QObject::tr("Return"); break;
case PolicyRule::Skip: action_name = QObject::tr("Skip"); break;
case PolicyRule::Continue: action_name = QObject::tr("Continue"); break;
case PolicyRule::Modify: action_name = QObject::tr("Modify"); break;
case PolicyRule::Classify: action_name = QObject::tr("Classify"); break;
case PolicyRule::Custom: action_name = QObject::tr("Custom"); break;
case PolicyRule::Branch:
action_name = QObject::tr("Branch");
if (platform=="iptables") action_name = QObject::tr("Chain");
if (platform=="pf") action_name = QObject::tr("Anchor");
break;
case PolicyRule::Accounting:
action_name = QObject::tr("Accounting");
if (platform=="ipf" || platform=="ipfw") action_name = QObject::tr("Count");
break;
case PolicyRule::Tag:
action_name = QObject::tr("Tag");
if (platform=="iptables") action_name = QObject::tr("Mark");
break;
case PolicyRule::Pipe:
action_name = QObject::tr("Pipe");
if (platform=="iptables") action_name = QObject::tr("Queue");
break;
case PolicyRule::Route:
action_name = QObject::tr("Routing");
break;
default:
;
}
return action_name;
PolicyRule *policy_rule = PolicyRule::cast(rule);
NATRule *nat_rule = NATRule::cast(rule);
string act;
if (policy_rule) act = policy_rule->getActionAsString();
if (nat_rule) act = nat_rule->getActionAsString();
return getActionNameForPlatform(fw, act);
}
QString getNatActionNameForPlatform(NATRule::NATAction action,
const QString &platform)
QString getActionNameForPlatform(Firewall *fw, const std::string &action)
{
Q_UNUSED(platform);
QString action_name = "";
switch (action)
string platform = fw->getStr("platform");
string name;
try
{
case NATRule::Translate:
action_name = QObject::tr("Translate");
break;
case NATRule::Branch:
action_name = QObject::tr("Branch");
break;
}
return action_name;
name = Resources::getTargetCapabilityStr(
platform, "actions/" + action + "/description");
} catch (FWException &ex) { }
return name.c_str();
}
/*
+7 -4
View File
@@ -133,10 +133,13 @@ QStringList getScreenNames(const QStringList &sl);
*/
QString getScreenName(QString s,const QStringList &sl);
QString getActionNameForPlatform(libfwbuilder::PolicyRule::Action action,
const QString &platform);
QString getNatActionNameForPlatform(libfwbuilder::NATRule::NATAction action,
const QString &platform);
QString getRuleAction(libfwbuilder::Rule *rule);
QString getActionNameForPlatform(libfwbuilder::Firewall *fw,
libfwbuilder::Rule *rule);
QString getActionNameForPlatform(libfwbuilder::Firewall *fw,
const std::string &action);
bool getStatelessFlagForAction(libfwbuilder::PolicyRule *rule);
+24 -12
View File
@@ -137,51 +137,63 @@ nameif %in %il security%sl
<actions>
<Accept>
<supported>True</supported>
<parameter>None</parameter>
<description>Accept</description>
<dialog_page>None</dialog_page>
</Accept>
<Deny>
<supported>True</supported>
<parameter>None</parameter>
<description>Deny</description>
<dialog_page>None</dialog_page>
</Deny>
<Reject>
<supported>True</supported>
<parameter>Reject</parameter>
<description>Reject</description>
<dialog_page>Reject</dialog_page>
</Reject>
<Accounting>
<supported>True</supported>
<parameter>None</parameter>
<description>Accounting</description>
<dialog_page>None</dialog_page>
</Accounting>
<Tag>
<supported>False</supported>
<parameter>None</parameter>
<description>Tag</description>
<dialog_page>None</dialog_page>
</Tag>
<Pipe>
<supported>False</supported>
<parameter>None</parameter>
<description>Pipe</description>
<dialog_page>None</dialog_page>
</Pipe>
<Classify>
<supported>False</supported>
<parameter>None</parameter>
<description>Classify</description>
<dialog_page>None</dialog_page>
</Classify>
<Custom>
<supported>False</supported>
<parameter>None</parameter>
<description>Custom</description>
<dialog_page>None</dialog_page>
</Custom>
<Branch>
<supported>False</supported>
<parameter>None</parameter>
<description>Branch</description>
<dialog_page>None</dialog_page>
</Branch>
<Route>
<supported>False</supported>
<parameter>None</parameter>
<description>Route</description>
<dialog_page>None</dialog_page>
</Route>
<Translate>
<supported>True</supported>
<parameter>None</parameter>
<description>Translate</description>
<dialog_page>None</dialog_page>
</Translate>
<NATBranch>
<supported>False</supported>
<parameter>None</parameter>
<description>Branch</description>
<dialog_page>None</dialog_page>
</NATBranch>
</actions>
</capabilities>
+24 -12
View File
@@ -60,51 +60,63 @@ interface %in
<actions>
<Accept>
<supported>True</supported>
<parameter>None</parameter>
<description>Accept</description>
<dialog_page>None</dialog_page>
</Accept>
<Deny>
<supported>True</supported>
<parameter>None</parameter>
<description>Deny</description>
<dialog_page>None</dialog_page>
</Deny>
<Reject>
<supported>False</supported>
<parameter>Reject</parameter>
<description>Reject</description>
<dialog_page>Reject</dialog_page>
</Reject>
<Accounting>
<supported>False</supported>
<parameter>None</parameter>
<description>Accounting</description>
<dialog_page>None</dialog_page>
</Accounting>
<Tag>
<supported>False</supported>
<parameter>None</parameter>
<description>Tag</description>
<dialog_page>None</dialog_page>
</Tag>
<Pipe>
<supported>False</supported>
<parameter>None</parameter>
<description>Pipe</description>
<dialog_page>None</dialog_page>
</Pipe>
<Classify>
<supported>False</supported>
<parameter>None</parameter>
<description>Classify</description>
<dialog_page>None</dialog_page>
</Classify>
<Custom>
<supported>False</supported>
<parameter>None</parameter>
<description>Custom</description>
<dialog_page>None</dialog_page>
</Custom>
<Branch>
<supported>False</supported>
<parameter>None</parameter>
<description>Branch</description>
<dialog_page>None</dialog_page>
</Branch>
<Route>
<supported>False</supported>
<parameter>None</parameter>
<description>Route</description>
<dialog_page>None</dialog_page>
</Route>
<Translate>
<supported>False</supported>
<parameter>None</parameter>
<description>Translate</description>
<dialog_page>None</dialog_page>
</Translate>
<NATBranch>
<supported>False</supported>
<parameter>None</parameter>
<description>Branch</description>
<dialog_page>None</dialog_page>
</NATBranch>
</actions>
</capabilities>
+24 -12
View File
@@ -41,51 +41,63 @@
<actions>
<Accept>
<supported>True</supported>
<parameter>None</parameter>
<description>Accept</description>
<dialog_page>None</dialog_page>
</Accept>
<Deny>
<supported>True</supported>
<parameter>None</parameter>
<description>Deny</description>
<dialog_page>None</dialog_page>
</Deny>
<Reject>
<supported>True</supported>
<parameter>Reject</parameter>
<description>Reject</description>
<dialog_page>Reject</dialog_page>
</Reject>
<Accounting>
<supported>True</supported>
<parameter>None</parameter>
<description>Count</description>
<dialog_page>None</dialog_page>
</Accounting>
<Tag>
<supported>False</supported>
<parameter>None</parameter>
<description>Tag</description>
<dialog_page>None</dialog_page>
</Tag>
<Pipe>
<supported>False</supported>
<parameter>None</parameter>
<description>Pipe</description>
<dialog_page>None</dialog_page>
</Pipe>
<Classify>
<supported>False</supported>
<parameter>None</parameter>
<description>Classify</description>
<dialog_page>None</dialog_page>
</Classify>
<Custom>
<supported>True</supported>
<parameter>CustomStr</parameter>
<description>Custom</description>
<dialog_page>CustomStr</dialog_page>
</Custom>
<Branch>
<supported>False</supported>
<parameter>None</parameter>
<description>Branch</description>
<dialog_page>None</dialog_page>
</Branch>
<Route>
<supported>True</supported>
<parameter>RouteIPF</parameter>
<description>Route</description>
<dialog_page>RouteIPF</dialog_page>
</Route>
<Translate>
<supported>True</supported>
<parameter>None</parameter>
<description>Translate</description>
<dialog_page>None</dialog_page>
</Translate>
<NATBranch>
<supported>False</supported>
<parameter>None</parameter>
<description>Branch</description>
<dialog_page>None</dialog_page>
</NATBranch>
</actions>
</capabilities>
+24 -12
View File
@@ -39,51 +39,63 @@
<actions>
<Accept>
<supported>True</supported>
<parameter>None</parameter>
<description>Accept</description>
<dialog_page>None</dialog_page>
</Accept>
<Deny>
<supported>True</supported>
<parameter>None</parameter>
<description>Deny</description>
<dialog_page>None</dialog_page>
</Deny>
<Reject>
<supported>True</supported>
<parameter>Reject</parameter>
<description>Reject</description>
<dialog_page>Reject</dialog_page>
</Reject>
<Accounting>
<supported>True</supported>
<parameter>None</parameter>
<description>Count</description>
<dialog_page>None</dialog_page>
</Accounting>
<Tag>
<supported>False</supported>
<parameter>None</parameter>
<description>Tag</description>
<dialog_page>None</dialog_page>
</Tag>
<Pipe>
<supported>True</supported>
<parameter>PipeArgsIPFW</parameter>
<description>Pipe</description>
<dialog_page>PipeArgsIPFW</dialog_page>
</Pipe>
<Classify>
<supported>True</supported>
<parameter>ClassifyArgsIPFW</parameter>
<description>Classify</description>
<dialog_page>ClassifyArgsIPFW</dialog_page>
</Classify>
<Custom>
<supported>True</supported>
<parameter>CustomStr</parameter>
<description>Custom</description>
<dialog_page>CustomStr</dialog_page>
</Custom>
<Branch>
<supported>False</supported>
<parameter>None</parameter>
<description>Branch</description>
<dialog_page>None</dialog_page>
</Branch>
<Route>
<supported>False</supported>
<parameter>None</parameter>
<description>Route</description>
<dialog_page>None</dialog_page>
</Route>
<Translate>
<supported>False</supported>
<parameter>None</parameter>
<description>Translate</description>
<dialog_page>None</dialog_page>
</Translate>
<NATBranch>
<supported>False</supported>
<parameter>None</parameter>
<description>Branch</description>
<dialog_page>None</dialog_page>
</NATBranch>
</actions>
</capabilities>
+26 -13
View File
@@ -50,55 +50,68 @@
<actions>
<Accept>
<supported>True</supported>
<parameter>None</parameter>
<description>Accept</description>
<dialog_page>None</dialog_page>
</Accept>
<Deny>
<supported>True</supported>
<parameter>None</parameter>
<description>Deny</description>
<dialog_page>None</dialog_page>
</Deny>
<Reject>
<supported>True</supported>
<parameter>Reject</parameter>
<description>Reject</description>
<dialog_page>Reject</dialog_page>
</Reject>
<Accounting>
<supported>True</supported>
<parameter>AccountingStr</parameter>
<description>Accounting</description>
<dialog_page>AccountingStr</dialog_page>
</Accounting>
<Tag>
<supported>True</supported>
<parameter>TagInt</parameter>
<description>Mark</description>
<dialog_page>TagInt</dialog_page>
</Tag>
<Pipe>
<supported>True</supported>
<parameter>None</parameter>
<description>Queue</description>
<dialog_page>None</dialog_page>
</Pipe>
<Classify>
<supported>True</supported>
<parameter>ClassifyStr</parameter>
<description>Classify</description>
<dialog_page>ClassifyStr</dialog_page>
</Classify>
<Custom>
<supported>True</supported>
<parameter>CustomStr</parameter>
<description>Custom</description>
<dialog_page>CustomStr</dialog_page>
</Custom>
<Branch>
<supported>True</supported>
<parameter>BranchChain</parameter>
<description>Chain</description>
<dialog_page>BranchChain</dialog_page>
</Branch>
<Route>
<supported>True</supported>
<parameter>RouteIPT</parameter>
<description>Routing</description>
<dialog_page>RouteIPT</dialog_page>
</Route>
<Continue>
<supported>True</supported>
<parameter>None</parameter>
<description>Continue</description>
<dialog_page>None</dialog_page>
</Continue>
<Translate>
<supported>True</supported>
<parameter>None</parameter>
<description>Translate</description>
<dialog_page>None</dialog_page>
</Translate>
<NATBranch>
<supported>True</supported>
<parameter>NATBranch</parameter>
<description>Branch</description>
<dialog_page>NATBranch</dialog_page>
</NATBranch>
</actions>
</capabilities>
+24 -12
View File
@@ -44,51 +44,63 @@
<actions>
<Accept>
<supported>True</supported>
<parameter>None</parameter>
<description>Accept</description>
<dialog_page>None</dialog_page>
</Accept>
<Deny>
<supported>True</supported>
<parameter>None</parameter>
<description>Deny</description>
<dialog_page>None</dialog_page>
</Deny>
<Reject>
<supported>True</supported>
<parameter>Reject</parameter>
<description>Reject</description>
<dialog_page>Reject</dialog_page>
</Reject>
<Accounting>
<supported>True</supported>
<parameter>None</parameter>
<description>Accounting</description>
<dialog_page>None</dialog_page>
</Accounting>
<Tag>
<supported>True</supported>
<parameter>TagStr</parameter>
<description>Tag</description>
<dialog_page>TagStr</dialog_page>
</Tag>
<Pipe>
<supported>False</supported>
<parameter>None</parameter>
<description>Pipe</description>
<dialog_page>None</dialog_page>
</Pipe>
<Classify>
<supported>True</supported>
<parameter>ClassifyStr</parameter>
<description>Classify</description>
<dialog_page>ClassifyStr</dialog_page>
</Classify>
<Custom>
<supported>False</supported>
<parameter>None</parameter>
<description>Custom</description>
<dialog_page>None</dialog_page>
</Custom>
<Branch>
<supported>True</supported>
<parameter>BranchAnchor</parameter>
<description>Anchor</description>
<dialog_page>BranchAnchor</dialog_page>
</Branch>
<Route>
<supported>True</supported>
<parameter>RoutePF</parameter>
<description>Route</description>
<dialog_page>RoutePF</dialog_page>
</Route>
<Translate>
<supported>True</supported>
<parameter>None</parameter>
<description>Translate</description>
<dialog_page>None</dialog_page>
</Translate>
<NATBranch>
<supported>True</supported>
<parameter>NATBranch</parameter>
<description>Branch</description>
<dialog_page>NATBranch</dialog_page>
</NATBranch>
</actions>
</capabilities>
+24 -12
View File
@@ -408,51 +408,63 @@ exit
<actions>
<Accept>
<supported>True</supported>
<parameter>None</parameter>
<description>Accept</description>
<dialog_page>None</dialog_page>
</Accept>
<Deny>
<supported>True</supported>
<parameter>None</parameter>
<description>Deny</description>
<dialog_page>None</dialog_page>
</Deny>
<Reject>
<supported>True</supported>
<parameter>Reject</parameter>
<description>Reject</description>
<dialog_page>Reject</dialog_page>
</Reject>
<Accounting>
<supported>True</supported>
<parameter>None</parameter>
<description>Accounting</description>
<dialog_page>None</dialog_page>
</Accounting>
<Tag>
<supported>False</supported>
<parameter>None</parameter>
<description>Tag</description>
<dialog_page>None</dialog_page>
</Tag>
<Pipe>
<supported>False</supported>
<parameter>None</parameter>
<description>Pipe</description>
<dialog_page>None</dialog_page>
</Pipe>
<Classify>
<supported>False</supported>
<parameter>None</parameter>
<description>Classify</description>
<dialog_page>None</dialog_page>
</Classify>
<Custom>
<supported>False</supported>
<parameter>None</parameter>
<description>Custom</description>
<dialog_page>None</dialog_page>
</Custom>
<Branch>
<supported>False</supported>
<parameter>None</parameter>
<description>Branch</description>
<dialog_page>None</dialog_page>
</Branch>
<Route>
<supported>False</supported>
<parameter>None</parameter>
<description>Route</description>
<dialog_page>None</dialog_page>
</Route>
<Translate>
<supported>True</supported>
<parameter>None</parameter>
<description>Translate</description>
<dialog_page>None</dialog_page>
</Translate>
<NATBranch>
<supported>False</supported>
<parameter>None</parameter>
<description>NATBranch</description>
<dialog_page>None</dialog_page>
</NATBranch>
</actions>
</capabilities>
+24 -12
View File
@@ -31,51 +31,63 @@
<actions>
<Accept>
<supported>True</supported>
<parameter>None</parameter>
<description>Accept</description>
<dialog_page>None</dialog_page>
</Accept>
<Deny>
<supported>True</supported>
<parameter>None</parameter>
<description>Deny</description>
<dialog_page>None</dialog_page>
</Deny>
<Reject>
<supported>True</supported>
<parameter>Reject</parameter>
<description>Reject</description>
<dialog_page>Reject</dialog_page>
</Reject>
<Accounting>
<supported>True</supported>
<parameter>None</parameter>
<description>Accounting</description>
<dialog_page>None</dialog_page>
</Accounting>
<Tag>
<supported>False</supported>
<parameter>None</parameter>
<description>Tag</description>
<dialog_page>None</dialog_page>
</Tag>
<Pipe>
<supported>False</supported>
<parameter>None</parameter>
<description>Pipe</description>
<dialog_page>None</dialog_page>
</Pipe>
<Classify>
<supported>False</supported>
<parameter>None</parameter>
<description>Classify</description>
<dialog_page>None</dialog_page>
</Classify>
<Custom>
<supported>False</supported>
<parameter>None</parameter>
<description>Custom</description>
<dialog_page>None</dialog_page>
</Custom>
<Branch>
<supported>False</supported>
<parameter>None</parameter>
<description>Branch</description>
<dialog_page>None</dialog_page>
</Branch>
<Route>
<supported>False</supported>
<parameter>None</parameter>
<description>Route</description>
<dialog_page>None</dialog_page>
</Route>
<Translate>
<supported>False</supported>
<parameter>None</parameter>
<description>Translate</description>
<dialog_page>None</dialog_page>
</Translate>
<NATBranch>
<supported>False</supported>
<parameter>None</parameter>
<description>Branch</description>
<dialog_page>None</dialog_page>
</NATBranch>
</actions>
</capabilities>