Commit 2ca6e9bb authored by Martin Storsjö's avatar Martin Storsjö

network: Extend the fallback gai_strerror implementation to handle more error codes

This is useful if a proper getaddrinfo is loaded dynamically on
windows, while using the fallback implementation of gai_strerror.
Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent b4675d0f
...@@ -110,17 +110,33 @@ struct addrinfo { ...@@ -110,17 +110,33 @@ struct addrinfo {
#endif #endif
/* getaddrinfo constants */ /* getaddrinfo constants */
#ifndef EAI_AGAIN
#define EAI_AGAIN 2
#endif
#ifndef EAI_BADFLAGS
#define EAI_BADFLAGS 3
#endif
#ifndef EAI_FAIL #ifndef EAI_FAIL
#define EAI_FAIL 4 #define EAI_FAIL 4
#endif #endif
#ifndef EAI_FAMILY #ifndef EAI_FAMILY
#define EAI_FAMILY 5 #define EAI_FAMILY 5
#endif #endif
#ifndef EAI_MEMORY
#define EAI_MEMORY 6
#endif
#ifndef EAI_NODATA
#define EAI_NODATA 7
#endif
#ifndef EAI_NONAME #ifndef EAI_NONAME
#define EAI_NONAME 8 #define EAI_NONAME 8
#endif #endif
#ifndef EAI_SERVICE
#define EAI_SERVICE 9
#endif
#ifndef EAI_SOCKTYPE
#define EAI_SOCKTYPE 10
#endif
#ifndef AI_PASSIVE #ifndef AI_PASSIVE
#define AI_PASSIVE 1 #define AI_PASSIVE 1
......
...@@ -243,9 +243,17 @@ int ff_getnameinfo(const struct sockaddr *sa, int salen, ...@@ -243,9 +243,17 @@ int ff_getnameinfo(const struct sockaddr *sa, int salen,
const char *ff_gai_strerror(int ecode) const char *ff_gai_strerror(int ecode)
{ {
switch(ecode) { switch(ecode) {
case EAI_AGAIN : return "Temporary failure in name resolution";
case EAI_BADFLAGS: return "Invalid flags for ai_flags";
case EAI_FAIL : return "A non-recoverable error occurred"; case EAI_FAIL : return "A non-recoverable error occurred";
case EAI_FAMILY : return "The address family was not recognized or the address length was invalid for the specified family"; case EAI_FAMILY : return "The address family was not recognized or the address length was invalid for the specified family";
case EAI_MEMORY : return "Memory allocation failure";
#if EAI_NODATA != EAI_NONAME
case EAI_NODATA : return "No address associated with hostname";
#endif
case EAI_NONAME : return "The name does not resolve for the supplied parameters"; case EAI_NONAME : return "The name does not resolve for the supplied parameters";
case EAI_SERVICE: return "servname not supported for ai_socktype";
case EAI_SOCKTYPE: return "ai_socktype not supported";
} }
return "Unknown error"; return "Unknown error";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment