summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2013-12-05 13:19:16 +0100
committerJakub Hrozek <jhrozek@redhat.com>2013-12-09 22:18:27 +0100
commit11193fe01397439b6e64b4f976143d56ced943de (patch)
tree0d75726ffd4d15ee53e6fb33c5ba1ed016bfb51e
parentad3d52010c29f9848a5c5bb766f3b66b54677490 (diff)
downloadsssd-11193fe01397439b6e64b4f976143d56ced943de.tar.gz
sssd-11193fe01397439b6e64b4f976143d56ced943de.tar.xz
sssd-11193fe01397439b6e64b4f976143d56ced943de.zip
failover: check dns_domain if primary servers lookup failed
If primary servers lookup failed, dns_domain is not set. Resolves: https://fedorahosted.org/sssd/ticket/2173
-rw-r--r--src/providers/fail_over_srv.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/providers/fail_over_srv.c b/src/providers/fail_over_srv.c
index 543516ef1..c27416899 100644
--- a/src/providers/fail_over_srv.c
+++ b/src/providers/fail_over_srv.c
@@ -302,13 +302,17 @@ static void fo_discover_servers_primary_done(struct tevent_req *subreq)
}
if (state->backup_domain == NULL) {
+ /* if there is no backup domain, we are done */
DEBUG(SSSDBG_TRACE_FUNC, ("No backup domain specified\n"));
goto done;
}
- if (strcasecmp(state->dns_domain, state->backup_domain) == 0) {
- /* primary domain was unreachable, we will use servers from backup
- * domain as primary */
+ if (state->dns_domain != NULL
+ && strcasecmp(state->dns_domain, state->backup_domain) == 0) {
+ /* If there was no error and dns_domain is the same as backup domain,
+ * it means that we were unable to resolve SRV in primary domain, but
+ * SRV from backup domain was resolved and those servers are considered
+ * to be primary. We are done. */
state->backup_servers = NULL;
state->num_backup_servers = 0;