diff --git a/include/uv-errno.h b/include/uv-errno.h index ce895b72..797bcab9 100644 --- a/include/uv-errno.h +++ b/include/uv-errno.h @@ -40,6 +40,8 @@ #define UV__EAI_SERVICE (-3010) #define UV__EAI_SOCKTYPE (-3011) #define UV__EAI_SYSTEM (-3012) /* TODO(bnoordhuis) Return system error. */ +#define UV__EAI_BADHINTS (-3013) +#define UV__EAI_PROTOCOL (-3014) /* Only map to the system errno on non-Windows platforms. It's apparently * a fairly common practice for Windows programmers to redefine errno codes. diff --git a/include/uv.h b/include/uv.h index c3ba2502..7f34ef20 100644 --- a/include/uv.h +++ b/include/uv.h @@ -71,12 +71,15 @@ extern "C" { XX(EAI_ADDRFAMILY, "address family not supported") \ XX(EAI_AGAIN, "temporary failure") \ XX(EAI_BADFLAGS, "bad ai_flags value") \ + XX(EAI_BADHINTS, "invalid value for hints") \ XX(EAI_CANCELED, "request canceled") \ XX(EAI_FAIL, "permanent failure") \ XX(EAI_FAMILY, "ai_family not supported") \ XX(EAI_MEMORY, "out of memory") \ XX(EAI_NODATA, "no address") \ XX(EAI_NONAME, "unknown node or service") \ + XX(EAI_OVERFLOW, "argument buffer overflow") \ + XX(EAI_PROTOCOL, "resolved protocol is unknown") \ XX(EAI_SERVICE, "service not available for socket type") \ XX(EAI_SOCKTYPE, "socket type not supported") \ XX(EAI_SYSTEM, "system error") \ diff --git a/src/uv-common.c b/src/uv-common.c index 4129a366..197789b5 100644 --- a/src/uv-common.c +++ b/src/uv-common.c @@ -404,6 +404,9 @@ int uv__getaddrinfo_translate_error(int sys_err) { #if defined(EAI_BADFLAGS) case EAI_BADFLAGS: return UV_EAI_BADFLAGS; #endif +#if defined(EAI_BADHINTS) + case EAI_BADHINTS: return UV_EAI_BADHINTS; +#endif #if defined(EAI_CANCELED) case EAI_CANCELED: return UV_EAI_CANCELED; #endif @@ -424,6 +427,12 @@ int uv__getaddrinfo_translate_error(int sys_err) { case EAI_NONAME: return UV_EAI_NONAME; # endif #endif +#if defined(EAI_OVERFLOW) + case EAI_OVERFLOW: return UV_EAI_OVERFLOW; +#endif +#if defined(EAI_PROTOCOL) + case EAI_PROTOCOL: return UV_EAI_PROTOCOL; +#endif #if defined(EAI_SERVICE) case EAI_SERVICE: return UV_EAI_SERVICE; #endif