]> granicus.if.org Git - pdns/commitdiff
add makeRule convenience function, improve SuffixMatchNodeRule showRules() output...
authorbert hubert <bert.hubert@netherlabs.nl>
Sun, 17 Jan 2016 09:49:03 +0000 (10:49 +0100)
committerbert hubert <bert.hubert@netherlabs.nl>
Sun, 17 Jan 2016 09:49:42 +0000 (10:49 +0100)
pdns/README-dnsdist.md
pdns/dnsdist-lua.cc
pdns/dnsrulactions.hh

index ce6ee9d053a4e9a668cf2d0ff78de98584b44681..b4bdef515b8db6c4cbfb3f694ec794b23c9f070e 100644 (file)
@@ -305,16 +305,16 @@ Rules have selectors and actions. Current selectors are:
 A special rule is `AndRule{rule1, rule2}`, which only matches if all of its subrules match.
 
 Current actions are:
- * Drop
- * Route to a pool
+ * Drop (DropAction)
+ * Route to a pool (PoolAction)
  * Return with TC=1 (truncated, ie, instruction to retry with TCP)
  * Force a ServFail, NotImp or Refused answer
  * Send out a crafted response (NXDOMAIN or "real" data)
- * Delay a response by n milliseconds
+ * Delay a response by n milliseconds (DelayAction)
  * Modify query to remove RD bit
 
 Rules can be added via:
- * addAction(DNS rule)
+ * addAction(DNS rule, DNS Action)
  * addAnyTCRule()
  * addDelay(DNS rule, delay in milliseconds)
  * addDisableValidationRule(DNS rule)
@@ -337,6 +337,10 @@ A DNS rule can be:
  * a RegexRule
  * a SuffixMatchNodeRule
 
+A convenience function `makeRule()` is supplied which will make a NetmaskGroupRule for you or a SuffixMatchNodeRule
+depending on how you call it. `makeRule("0.0.0.0/0")` will for example match all IPv4 traffic, `makeRule{"be","nl","lu"}` will
+match all Benelux DNS traffic.
+
 More power
 ----------
 More powerful things can be achieved by defining a function called
index 249483b7cc0d81825073abbf5c62ed4760747c10..38f48aa5226426030bb8d03d00ce62c2e199e065 100644 (file)
@@ -311,7 +311,7 @@ vector<std::function<void(void)>> setupLua(bool client, const std::string& confi
                        return ret;
                      } );
 
-
+  g_lua.writeFunction("makeRule", makeRule);
   g_lua.writeFunction("addAnyTCRule", []() {
       setLuaSideEffect();
       auto rules=g_rulactions.getCopy();
index 9f065502a167acd6290308b1f5b05ddeddf08f00..b242b709db1030a5c20d04371696ae4958aa3f36 100644 (file)
@@ -186,7 +186,7 @@ public:
   }
   string toString() const override
   {
-    return d_smn.toString();
+    return "qname=="+d_smn.toString();
   }
 private:
   SuffixMatchNode d_smn;