From: Nick Mathewson Date: Fri, 5 Feb 2010 18:50:51 +0000 (-0500) Subject: Always use our own gai_strerror() replacement. X-Git-Tag: release-2.0.4-alpha~36 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6810bdb10156f5fda1c8172114ea22c61da6e4c5;p=libevent Always use our own gai_strerror() replacement. This is necessary if we have any errors that the platform gai_strerror() doesn't know how to handle. --- diff --git a/evutil.c b/evutil.c index 9fd1d76b..7fd73de6 100644 --- a/evutil.c +++ b/evutil.c @@ -1242,13 +1242,15 @@ evutil_getaddrinfo_async(struct evdns_base *dns_base, const char * evutil_gai_strerror(int err) { + /* As a sneaky side-benefit, this case statement will get most + * compilers to tell us if any of the error codes we defined + * conflict with the platform's native error codes. */ switch (err) { - case EVUTIL_EAI_CANCEL: return "Request cancelled"; -#ifdef USE_NATIVE_GETADDRINFO - default: - return gai_strerror(err); -#else - case 0: return "No error"; + case EVUTIL_EAI_CANCEL: + return "Request cancelled"; + case 0: + return "No error"; + case EVUTIL_EAI_ADDRFAMILY: return "address family for nodename not supported"; case EVUTIL_EAI_AGAIN: @@ -1269,8 +1271,12 @@ evutil_gai_strerror(int err) return "servname not supported for ai_socktype"; case EVUTIL_EAI_SOCKTYPE: return "ai_socktype not supported"; - case EVUTIL_EAI_SYSTEM: return "system error"; + case EVUTIL_EAI_SYSTEM: + return "system error"; default: +#ifdef USE_NATIVE_GETADDRINFO + return gai_strerror(err); +#else return "Unknown error code"; #endif }