summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2013-06-18 13:28:22 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-08-09 15:37:17 +0200
commitf17b662881f1a2f305b2aa10b096b15db0f79c0c (patch)
tree625aeed08a2cf14eecd9d2de6244ff3e9845de49
parent95eba1e434e68ef14e6e39c69687b351e822e4bf (diff)
downloadsssd-f17b662881f1a2f305b2aa10b096b15db0f79c0c.tar.gz
sssd-f17b662881f1a2f305b2aa10b096b15db0f79c0c.tar.xz
sssd-f17b662881f1a2f305b2aa10b096b15db0f79c0c.zip
failover: if expanded server is marked as neutral, invoke srv collapse
https://fedorahosted.org/sssd/ticket/1947 Otherwise we will do the SRV expansion once again: 1. leaving the old servers in server list 2. meta server is not inserted back in the list, the newly found servers are inserted behind meta server, meta server is orphaned and the new servers are forgotten
-rw-r--r--src/providers/fail_over.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/providers/fail_over.c b/src/providers/fail_over.c
index 47bbd820d..17ebbf4ca 100644
--- a/src/providers/fail_over.c
+++ b/src/providers/fail_over.c
@@ -1111,6 +1111,13 @@ resolve_srv_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
* query collapsed
* */
case SRV_NEUTRAL: /* Request SRV lookup */
+ if (server != NULL && server != state->meta) {
+ /* A server created by expansion of meta server was marked as
+ * neutral. We have to collapse the servers and issue new
+ * SRV resolution. */
+ state->meta = collapse_srv_lookup(&server);
+ }
+
if (state->meta->srv_data->dns_domain == NULL) {
/* we need to look up our DNS domain first */
DEBUG(SSSDBG_TRACE_FUNC,