From 3d715363a3bfac489b7500dd70de6b6bdc7aa405 Mon Sep 17 00:00:00 2001 From: Jan Zeleny Date: Thu, 29 Mar 2012 08:06:47 -0400 Subject: Ask for subdomains in responder in the first request after startup --- src/responder/nss/nsssrv_cmd.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/responder') diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c index d4ce6656..84aa98d2 100644 --- a/src/responder/nss/nsssrv_cmd.c +++ b/src/responder/nss/nsssrv_cmd.c @@ -904,6 +904,16 @@ static int nss_cmd_getpwnam(struct cli_ctx *cctx) /* this is a multidomain search */ dctx->domain = cctx->rctx->domains; cmdctx->check_next = true; + if (cctx->rctx->get_domains_last_call.tv_sec == 0) { + req = sss_dp_get_domains_send(cctx->rctx, cctx->rctx, false, NULL); + if (req == NULL) { + ret = ENOMEM; + } else { + tevent_req_set_callback(req, nss_cmd_getpwnam_cb, dctx); + ret = EAGAIN; + } + goto done; + } } dctx->check_provider = NEED_CHECK_PROVIDER(dctx->domain->provider); @@ -2264,6 +2274,16 @@ static int nss_cmd_getgrnam(struct cli_ctx *cctx) /* this is a multidomain search */ dctx->domain = cctx->rctx->domains; cmdctx->check_next = true; + if (cctx->rctx->get_domains_last_call.tv_sec == 0) { + req = sss_dp_get_domains_send(cctx->rctx, cctx->rctx, false, NULL); + if (req == NULL) { + ret = ENOMEM; + } else { + tevent_req_set_callback(req, nss_cmd_getgrnam_cb, dctx); + ret = EAGAIN; + } + goto done; + } } dctx->check_provider = NEED_CHECK_PROVIDER(dctx->domain->provider); @@ -3361,6 +3381,16 @@ static int nss_cmd_initgroups(struct cli_ctx *cctx) /* this is a multidomain search */ dctx->domain = cctx->rctx->domains; cmdctx->check_next = true; + if (cctx->rctx->get_domains_last_call.tv_sec == 0) { + req = sss_dp_get_domains_send(cctx->rctx, cctx->rctx, false, NULL); + if (req == NULL) { + ret = ENOMEM; + } else { + tevent_req_set_callback(req, nss_cmd_initgroups_cb, dctx); + ret = EAGAIN; + } + goto done; + } } dctx->check_provider = NEED_CHECK_PROVIDER(dctx->domain->provider); -- cgit