diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2014-12-12 17:10:40 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2015-03-03 16:15:37 +0100 |
commit | 8df69bbc58c2f4d3f0b34be9756d9ddf24b1db6d (patch) | |
tree | 643138d18dd31a9ea0e5691daf19baea0dc0e396 /src/providers/ad | |
parent | eafbc66c2ff6365478e62a8df3fd005bf80e5c7b (diff) | |
download | sssd-8df69bbc58c2f4d3f0b34be9756d9ddf24b1db6d.tar.gz sssd-8df69bbc58c2f4d3f0b34be9756d9ddf24b1db6d.tar.xz sssd-8df69bbc58c2f4d3f0b34be9756d9ddf24b1db6d.zip |
FO: Use SRV TTL in fail over code
Resolves:
https://fedorahosted.org/sssd/ticket/1884
Removes the hardcoded SRV TTL timeout and uses TTL from the DNS instead.
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Diffstat (limited to 'src/providers/ad')
-rw-r--r-- | src/providers/ad/ad_srv.c | 8 | ||||
-rw-r--r-- | src/providers/ad/ad_srv.h | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/providers/ad/ad_srv.c b/src/providers/ad/ad_srv.c index ac9dfa187..910f82dd0 100644 --- a/src/providers/ad/ad_srv.c +++ b/src/providers/ad/ad_srv.c @@ -176,7 +176,7 @@ static void ad_get_dc_servers_done(struct tevent_req *subreq) req = tevent_req_callback_data(subreq, struct tevent_req); state = tevent_req_data(req, struct ad_get_dc_servers_state); - ret = fo_discover_srv_recv(state, subreq, &domain, + ret = fo_discover_srv_recv(state, subreq, &domain, NULL, &state->servers, &state->num_servers); talloc_zfree(subreq); if (ret != EOK) { @@ -616,6 +616,7 @@ struct ad_srv_plugin_state { const char *site; char *dns_domain; + uint32_t ttl; char *forest; struct fo_server_info *primary_servers; size_t num_primary_servers; @@ -837,6 +838,7 @@ static void ad_srv_plugin_servers_done(struct tevent_req *subreq) state = tevent_req_data(req, struct ad_srv_plugin_state); ret = fo_discover_servers_recv(state, subreq, &state->dns_domain, + &state->ttl, &state->primary_servers, &state->num_primary_servers, &state->backup_servers, @@ -874,6 +876,7 @@ static void ad_srv_plugin_servers_done(struct tevent_req *subreq) errno_t ad_srv_plugin_recv(TALLOC_CTX *mem_ctx, struct tevent_req *req, char **_dns_domain, + uint32_t *_ttl, struct fo_server_info **_primary_servers, size_t *_num_primary_servers, struct fo_server_info **_backup_servers, @@ -904,6 +907,9 @@ errno_t ad_srv_plugin_recv(TALLOC_CTX *mem_ctx, *_dns_domain = talloc_steal(mem_ctx, state->dns_domain); } + if (_ttl) { + *_ttl = state->ttl; + } return EOK; } diff --git a/src/providers/ad/ad_srv.h b/src/providers/ad/ad_srv.h index be3ac2826..ae5efe447 100644 --- a/src/providers/ad/ad_srv.h +++ b/src/providers/ad/ad_srv.h @@ -42,6 +42,7 @@ struct tevent_req *ad_srv_plugin_send(TALLOC_CTX *mem_ctx, errno_t ad_srv_plugin_recv(TALLOC_CTX *mem_ctx, struct tevent_req *req, char **_dns_domain, + uint32_t *_ttl, struct fo_server_info **_primary_servers, size_t *_num_primary_servers, struct fo_server_info **_backup_servers, |