summaryrefslogtreecommitdiff
path: root/source4/dns_server/dns_server.c
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2016-02-17 11:30:21 +1300
committerGarming Sam <garming@samba.org>2016-05-03 08:10:09 +0200
commit5caebde11d1a25581e5f8d7c7f7deadfeae7759e (patch)
tree6f872bfed07db21e49b16b8f0a5eb1443484c71b /source4/dns_server/dns_server.c
parent870b74d73eb6812d2002e4d88a2553d6edd545c4 (diff)
downloadsamba-5caebde11d1a25581e5f8d7c7f7deadfeae7759e.tar.gz
dns: modify dns forwarder param to be multi-valued
This allows a secondary DNS forwarder for a trivial failover. Requests which fail/timeout at the primary DNS forwarder will be restarted entirely with the next forwarder in the list. Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/dns_server/dns_server.c')
-rw-r--r--source4/dns_server/dns_server.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/source4/dns_server/dns_server.c b/source4/dns_server/dns_server.c
index a2dc15195bf..ae7ec7aad6f 100644
--- a/source4/dns_server/dns_server.c
+++ b/source4/dns_server/dns_server.c
@@ -123,7 +123,7 @@ static struct tevent_req *dns_process_send(TALLOC_CTX *mem_ctx,
struct dns_process_state *state;
enum ndr_err_code ndr_err;
WERROR ret;
- const char *forwarder = lpcfg_dns_forwarder(dns->task->lp_ctx);
+ const char **forwarder = lpcfg_dns_forwarder(dns->task->lp_ctx);
req = tevent_req_create(mem_ctx, &state, struct dns_process_state);
if (req == NULL) {
return NULL;
@@ -169,8 +169,8 @@ static struct tevent_req *dns_process_send(TALLOC_CTX *mem_ctx,
state->state.flags = state->in_packet.operation;
state->state.flags |= DNS_FLAG_REPLY;
-
- if (forwarder && *forwarder) {
+
+ if (forwarder && *forwarder && **forwarder) {
state->state.flags |= DNS_FLAG_RECURSION_AVAIL;
}