aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wsocket.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/wsocket.c b/src/wsocket.c
index 12e6352..36c10ff 100644
--- a/src/wsocket.c
+++ b/src/wsocket.c
@@ -397,3 +397,28 @@ static const char *wstrerror(int err) {
397 default: return "Unknown error"; 397 default: return "Unknown error";
398 } 398 }
399} 399}
400
401const char *socket_gaistrerror(int err) {
402 if (err == 0) return NULL;
403 switch (err) {
404 case EAI_AGAIN: return "temporary failure in name resolution";
405 case EAI_BADFLAGS: return "invalid value for ai_flags";
406#ifdef EAI_BADHINTS
407 case EAI_BADHINTS: return "invalid value for hints";
408#endif
409 case EAI_FAIL: return "non-recoverable failure in name resolution";
410 case EAI_FAMILY: return "ai_family not supported";
411 case EAI_MEMORY: return "memory allocation failure";
412 case EAI_NONAME:
413 return "host or service not provided, or not known";
414// case EAI_OVERFLOW: return "argument buffer overflow";
415#ifdef EAI_PROTOCOL
416 case EAI_PROTOCOL: return "resolved protocol is unknown";
417#endif
418 case EAI_SERVICE: return "service not supported for socket type";
419 case EAI_SOCKTYPE: return "ai_socktype not supported";
420// case EAI_SYSTEM: return strerror(errno);
421 default: return gai_strerror(err);
422 }
423}
424