diff options
Diffstat (limited to 'src/responder/common/responder_cache_req.c')
-rw-r--r-- | src/responder/common/responder_cache_req.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/responder/common/responder_cache_req.c b/src/responder/common/responder_cache_req.c index be7fe5f29..ab73401b3 100644 --- a/src/responder/common/responder_cache_req.c +++ b/src/responder/common/responder_cache_req.c @@ -981,7 +981,8 @@ static errno_t cache_req_next_domain(struct tevent_req *req) /* If it is a domainless search, skip domains that require fully * qualified names instead. */ while (state->domain != NULL && state->check_next - && state->domain->fqnames) { + && state->domain->fqnames + && !cache_req_input_is_upn(state->input)) { state->domain = get_next_domain(state->domain, false); } @@ -1009,7 +1010,11 @@ static errno_t cache_req_next_domain(struct tevent_req *req) /* we will continue with the following domain the next time */ if (state->check_next) { - state->domain = get_next_domain(state->domain, false); + if (cache_req_input_is_upn(state->input)) { + state->domain = get_next_domain(state->domain, true); + } else { + state->domain = get_next_domain(state->domain, false); + } } return EAGAIN; |