From 185cd4c79492a7de5988f9407d764cdb3a0e2e10 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Wed, 11 May 2011 17:50:07 -0400 Subject: [PATCH] libutil: use AI_ADDRCONFIG only when AI_NUMERIC is not defined This flag prevents startup w/o ip addresses assigned to any interface. If AI_NUMERIC is passed it should be safe to avoid it. Signed-off-by: Andreas Schneider --- lib/util/util_net.c | 16 +++++++++++----- 1 files changed, 11 insertions(+), 5 deletions(-) Index: samba/lib/util/util_net.c =================================================================== --- samba.orig/lib/util/util_net.c +++ samba/lib/util/util_net.c @@ -64,10 +64,9 @@ ppres); if (ret) { - DEBUG(3,("interpret_string_addr_internal: getaddrinfo failed " - "for name %s [%s]\n", - str, - gai_strerror(ret) )); + DEBUG(3, ("interpret_string_addr_internal: " + "getaddrinfo failed for name %s (flags %d) [%s]\n", + str, flags, gai_strerror(ret))); return false; } return true; @@ -88,6 +87,7 @@ #if defined(HAVE_IPV6) char addr[INET6_ADDRSTRLEN]; unsigned int scope_id = 0; + int int_flags; if (strchr_m(str, ':')) { char *p = strchr_m(str, '%'); @@ -108,7 +108,13 @@ zero_sockaddr(pss); - if (!interpret_string_addr_internal(&res, str, flags|AI_ADDRCONFIG)) { + if (flags & AI_NUMERICHOST) { + int_flags = flags; + } else { + int_flags = flags|AI_ADDRCONFIG; + } + + if (!interpret_string_addr_internal(&res, str, int_flags)) { return false; } if (!res) {