diff options
author | Pavel Březina <pbrezina@redhat.com> | 2013-12-05 13:19:16 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-12-09 22:16:25 +0100 |
commit | c7c01428baf8e29a7997cb879cea109d63c4e581 (patch) | |
tree | db030e7a8b5143652654eee09faf44a6d21094dc /src/providers/fail_over_srv.c | |
parent | 5b94e341a6ae347f49cfd18d574c9f37d0c2633e (diff) | |
download | sssd-c7c01428baf8e29a7997cb879cea109d63c4e581.tar.gz sssd-c7c01428baf8e29a7997cb879cea109d63c4e581.tar.xz sssd-c7c01428baf8e29a7997cb879cea109d63c4e581.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
Diffstat (limited to 'src/providers/fail_over_srv.c')
-rw-r--r-- | src/providers/fail_over_srv.c | 10 |
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; |