diff options
Diffstat (limited to 'src/responder/nss/nsssrv_cmd.c')
-rw-r--r-- | src/responder/nss/nsssrv_cmd.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c index b3998015f..1edaef968 100644 --- a/src/responder/nss/nsssrv_cmd.c +++ b/src/responder/nss/nsssrv_cmd.c @@ -894,7 +894,11 @@ static int nss_cmd_getpwnam_search(struct nss_dom_ctx *dctx) name, dom->name); /* if a multidomain search, try with next */ if (cmdctx->check_next) { - dom = get_next_domain(dom, false); + if (cmdctx->name_is_upn) { + dom = get_next_domain(dom, true); + } else { + dom = get_next_domain(dom, false); + } continue; } /* There are no further domains or this was a @@ -969,7 +973,11 @@ static int nss_cmd_getpwnam_search(struct nss_dom_ctx *dctx) /* if a multidomain search, try with next */ if (cmdctx->check_next) { - dom = get_next_domain(dom, false); + if (cmdctx->name_is_upn) { + dom = get_next_domain(dom, true); + } else { + dom = get_next_domain(dom, false); + } if (dom) continue; } @@ -4156,7 +4164,11 @@ static int nss_cmd_initgroups_search(struct nss_dom_ctx *dctx) name, dom->name); /* if a multidomain search, try with next */ if (cmdctx->check_next) { - dom = get_next_domain(dom, false); + if (cmdctx->name_is_upn) { + dom = get_next_domain(dom, true); + } else { + dom = get_next_domain(dom, false); + } continue; } /* There are no further domains or this was a @@ -4230,7 +4242,11 @@ static int nss_cmd_initgroups_search(struct nss_dom_ctx *dctx) /* if a multidomain search, try with next */ if (cmdctx->check_next) { - dom = get_next_domain(dom, false); + if (cmdctx->name_is_upn) { + dom = get_next_domain(dom, true); + } else { + dom = get_next_domain(dom, false); + } if (dom) continue; } |