return 0;
}
+#endif /* !HAVE_GETADDRINFO */
+#if !HAVE_GETADDRINFO || HAVE_WINSOCK2_H
const char *ff_gai_strerror(int 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_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_SERVICE: return "servname not supported for ai_socktype";
+ case EAI_SOCKTYPE: return "ai_socktype not supported";
}
return "Unknown error";
}
-#endif
+#endif /* !HAVE_GETADDRINFO || HAVE_WINSOCK2_H */
int ff_socket_nonblock(int socket, int enable)
{