[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Sat Feb 16 23:07:02 MST 2013


The branch, master has been updated
       via  6dfb35f Fallback to the internal resolver on EAI_FAIL.
      from  05235d5 tdb: Fix a typo

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 6dfb35f3ff7ad2d2089c0a3e5eab342384e45e4c
Author: Landon Fuller <landonf at bikemonkey.org>
Date:   Sat Feb 16 22:57:40 2013 -0500

    Fallback to the internal resolver on EAI_FAIL.
    
    On Linux, non-RFC 1034-complaint names (such as gc._msdsc.example.org)
    will result in the resolver returning the non-POSIX EAI_NODATA. In that
    case, the case statement here would fall back on the internal resolver,
    allowing resolution to complete successfully.
    
    On FreeBSD, the libc resolver uses the same validation code, but
    the POSIX result of EAI_FAIL is returned instead of EAI_NODATA. Since
    there was no case for this error code, no fallback to the internal
    resolver would occur. This led to replication failing on FreeBSD.
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Sun Feb 17 07:06:36 CET 2013 on sn-devel-104

-----------------------------------------------------------------------

Summary of changes:
 source4/libcli/resolve/dns_ex.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/libcli/resolve/dns_ex.c b/source4/libcli/resolve/dns_ex.c
index bc64e8d..1226ed6 100644
--- a/source4/libcli/resolve/dns_ex.c
+++ b/source4/libcli/resolve/dns_ex.c
@@ -400,8 +400,10 @@ static void run_child_getaddrinfo(struct dns_ex_state *state, int fd)
 #ifdef EAI_NODATA
 		case EAI_NODATA:
 #endif
+		case EAI_FAIL:
+			/* Linux returns EAI_NODATA on non-RFC1034-compliant names. FreeBSD returns EAI_FAIL */
 		case EAI_NONAME:
-			/* getaddrinfo() doesn't handle CNAME records */
+			/* getaddrinfo() doesn't handle CNAME or non-RFC1034 compatible records */
 			run_child_dns_lookup(state, fd);
 			return;
 		default:


-- 
Samba Shared Repository


More information about the samba-cvs mailing list