summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/providers/ad/ad_srv.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/providers/ad/ad_srv.c b/src/providers/ad/ad_srv.c
index 910f82dd0..123aac6a4 100644
--- a/src/providers/ad/ad_srv.c
+++ b/src/providers/ad/ad_srv.c
@@ -541,7 +541,7 @@ done:
int ad_get_client_site_recv(TALLOC_CTX *mem_ctx,
struct tevent_req *req,
const char **_site,
- char **_forest)
+ const char **_forest)
{
struct ad_get_client_site_state *state = NULL;
state = tevent_req_data(req, struct ad_get_client_site_state);
@@ -617,7 +617,7 @@ struct ad_srv_plugin_state {
const char *site;
char *dns_domain;
uint32_t ttl;
- char *forest;
+ const char *forest;
struct fo_server_info *primary_servers;
size_t num_primary_servers;
struct fo_server_info *backup_servers;
@@ -774,6 +774,14 @@ static void ad_srv_plugin_site_done(struct tevent_req *subreq)
"using configured value: '%s' instead.\n",
state->site, state->ctx->ad_site_override);
state->site = state->ctx->ad_site_override;
+
+ if (state->forest == NULL) {
+ DEBUG(SSSDBG_TRACE_FUNC, "Missing forest information, using %s\n",
+ state->discovery_domain);
+ state->forest = state->discovery_domain;
+ }
+
+ ret = EOK;
}
if (ret == EOK) {
if (strcmp(state->service, "gc") == 0) {