rules.push_back(rule);
}
+ Json::array responseRules;
+ auto localResponseRules = g_resprulactions.getCopy();
+ num=0;
+ for(const auto& a : localResponseRules) {
+ Json::object rule{
+ {"id", num++},
+ {"matches", (int)a.first->d_matches},
+ {"rule", a.first->toString()},
+ {"action", a.second->toString()},
+ };
+ responseRules.push_back(rule);
+ }
string acl;
{ "servers", servers},
{ "frontends", frontends },
{ "rules", rules},
+ { "response-rules", responseRules},
{ "acl", acl},
{ "local", localaddresses}
};
<tr>
<td><div id="rules"></div></td>
</tr>
+ <tr>
+ <td><div id="response-rules"></div></td>
+ </tr>
<tr>
<td><div id="dynblock"></div></td>
</tr>
bouw = bouw + '<tr><td align="center" colspan="4"><font color="#aaaaaa">No rules defined</font></td></tr>';
bouw = bouw + "</table>";
$("#rules").html(bouw);
+
+ bouw='<table width="100%"><tr align=left><th>#</th><th align=left>Response Rule</th><th>Action</th><th>Matches</th></tr>';
+ if(data["response-rules"].length) {
+ $.each(data["response-rules"], function(a,b) {
+ bouw = bouw + ("<tr align=left><td>"+b["id"]+"</td><td align=left>"+b["rule"]+"</td><td>"+b["action"]+"</td>");
+ bouw = bouw + ("<td>"+b["matches"]+"</td></tr>");
+ });
+ }
+ else
+ bouw = bouw + '<tr><td align="center" colspan="4"><font color="#aaaaaa">No response rules defined</font></td></tr>';
+ bouw = bouw + "</table>";
+ $("#response-rules").html(bouw);
}
});
self.assertEquals(content['daemon_type'], 'dnsdist')
- for key in ['version', 'acl', 'local', 'rules', 'servers', 'frontends']:
+ for key in ['version', 'acl', 'local', 'rules', 'response-rules', 'servers', 'frontends']:
self.assertIn(key, content)
for rule in content['rules']:
for key in ['id', 'matches']:
self.assertTrue(rule[key] >= 0)
+ for rule in content['response-rules']:
+ for key in ['id', 'matches', 'rule', 'action']:
+ self.assertIn(key, rule)
+ for key in ['id', 'matches']:
+ self.assertTrue(rule[key] >= 0)
+
for server in content['servers']:
for key in ['id', 'latency', 'name', 'weight', 'outstanding', 'qpsLimit',
'reuseds', 'state', 'address', 'pools', 'qps', 'queries', 'order']: