From: Igor Maravic <[email protected]>

Add '~' as string distguisher, instead of ' '.
Also add posible completions to policy template.

Reported-by: Jens Dackenberg <[email protected]>
Signed-off-by: Igor Maravic <[email protected]>
---
 xorp/etc/templates/policy.tp  |   30 ++++++++++++++++++++++++++++--
 xorp/policy/common/element.cc |    4 ++--
 2 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/xorp/etc/templates/policy.tp b/xorp/etc/templates/policy.tp
index 5e01975..b48bcaa 100644
--- a/xorp/etc/templates/policy.tp
+++ b/xorp/etc/templates/policy.tp
@@ -340,8 +340,21 @@ policy {
 
            modifier {
                %help: short "Set prefix modifier";
+               %allow: $(@) ":" %help: "Exact";
+               %allow: $(@) "==" %help: "Exact";
+               %allow: $(@) "exact" %help: "Exact";
+               %allow: $(@) "!=" %help: "Not";
+               %allow: $(@) "not" %help: "Not";
+               %allow: $(@) ">=" %help: "Or shorter";
+               %allow: $(@) "orshorter" %help: "Or shorter";
+               %allow: $(@) ">" %help: "Shorter";
+               %allow: $(@) "shorter" %help: "Shorter";
+               %allow: $(@) "<" %help: "Longer";
+               %allow: $(@) "longer" %help: "Longer";
+               %allow: $(@) "<=" %help: "Or longer";
+               %allow: $(@) "orlonger" %help: "Or longer";
                %set: xrl 
"$(policy.targetname)/policy/0.1/delete_from_set?type:txt=set_ipv4net&set:txt=$(network4-list.@)&element:txt=$(network.@)";
-               %set: xrl 
"$(policy.targetname)/policy/0.1/add_to_set?type:txt=set_ipv4net&set:txt=$(network4-list.@)&element:txt=$(network.@)
 $(@)";
+               %set: xrl 
"$(policy.targetname)/policy/0.1/add_to_set?type:txt=set_ipv4net&set:txt=$(network4-list.@)&element:txt=$(network.@)~$(@)";
                %delete: xrl 
"$(policy.targetname)/policy/0.1/delete_from_set?type:txt=set_ipv4net&set:txt=$(network4-list.@)&element:txt=$(network.@)";
                %delete: xrl 
"$(policy.targetname)/policy/0.1/add_to_set?type:txt=set_ipv4net&set:txt=$(network4-list.@)&element:txt=$(network.@)";
            }
@@ -366,8 +379,21 @@ policy {
 
            modifier {
                %help: short "Set prefix modifier";
+               %allow: $(@) ":" %help: "Exact";
+               %allow: $(@) "==" %help: "Exact";
+               %allow: $(@) "exact" %help: "Exact";
+               %allow: $(@) "!=" %help: "Not";
+               %allow: $(@) "not" %help: "Not";
+               %allow: $(@) ">=" %help: "Or shorter";
+               %allow: $(@) "orshorter" %help: "Or shorter";
+               %allow: $(@) ">" %help: "Shorter";
+               %allow: $(@) "shorter" %help: "Shorter";
+               %allow: $(@) "<" %help: "Longer";
+               %allow: $(@) "longer" %help: "Longer";
+               %allow: $(@) "<=" %help: "Or longer";
+               %allow: $(@) "orlonger" %help: "Or longer";
                %set: xrl 
"$(policy.targetname)/policy/0.1/delete_from_set?type:txt=set_ipv6net&set:txt=$(network6-list.@)&element:txt=$(network.@)";
-               %set: xrl 
"$(policy.targetname)/policy/0.1/add_to_set?type:txt=set_ipv6net&set:txt=$(network6-list.@)&element:txt=$(network.@)
 $(@)";
+               %set: xrl 
"$(policy.targetname)/policy/0.1/add_to_set?type:txt=set_ipv6net&set:txt=$(network6-list.@)&element:txt=$(network.@)~$(@)";
                %delete: xrl 
"$(policy.targetname)/policy/0.1/delete_from_set?type:txt=set_ipv6net&set:txt=$(network6-list.@)&element:txt=$(network.@)";
                %delete: xrl 
"$(policy.targetname)/policy/0.1/add_to_set?type:txt=set_ipv6net&set:txt=$(network6-list.@)&element:txt=$(network.@)";
            }
diff --git a/xorp/policy/common/element.cc b/xorp/policy/common/element.cc
index 2d9523f..a09a417 100644
--- a/xorp/policy/common/element.cc
+++ b/xorp/policy/common/element.cc
@@ -140,7 +140,7 @@ ElemNet<A>::ElemNet(const char* str) : Element(_hash), 
_net(NULL),
     // parse modifier
     string in = str;
 
-    const char* p = strchr(str, ' ');
+    const char* p = strchr(str, '~');
     if (p) {
        in = in.substr(0, p - str);
 
@@ -189,7 +189,7 @@ ElemNet<A>::str() const
     string str = _net->str();
 
     if (_mod != MOD_NONE) {
-       str += " ";
+       str += "~";
        str += mod_to_str(_mod);
     }
 
-- 
1.7.5.4

_______________________________________________
Xorp-hackers mailing list
[email protected]
http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers

Reply via email to