1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-26 21:57:41 +03:00

s4: Fix result check for getaddrinfo()

I think this completes commit 50feca550eed7828198b7c0fc5f0e5ddc863313d.
Now result should be handled correctly both for systems that
support EAI_NODATA but returns EAI_NONAME (as my Ubuntu 9.x)
and systems that doesn't support EAI_NODATA at all.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
This commit is contained in:
Kamen Mazdrashki 2010-01-06 13:40:33 +02:00 committed by Stefan Metzmacher
parent f6bd654a6c
commit a2044b9a61

View File

@ -283,14 +283,19 @@ static void run_child_getaddrinfo(struct dns_ex_state *state, int fd)
hints.ai_flags = AI_ADDRCONFIG | AI_NUMERICSERV;
ret = getaddrinfo(state->name.name, "0", &hints, &res_list);
/* try to fallback in case of error */
if (state->do_fallback) {
switch (ret) {
#ifdef EAI_NODATA
if (ret == EAI_NODATA && state->do_fallback) {
#else
if (ret == EAI_NONAME && state->do_fallback) {
case EAI_NODATA:
#endif
/* getaddrinfo() doesn't handle CNAME records */
run_child_dns_lookup(state, fd);
return;
case EAI_NONAME:
/* getaddrinfo() doesn't handle CNAME records */
run_child_dns_lookup(state, fd);
return;
default:
break;
}
}
if (ret != 0) {
goto done;