| 408 | } |
| 409 | |
| 410 | const char *socket_gaistrerror(int err) { |
| 411 | if (err == 0) return NULL; |
| 412 | switch (err) { |
| 413 | case EAI_AGAIN: return "temporary failure in name resolution"; |
| 414 | case EAI_BADFLAGS: return "invalid value for ai_flags"; |
| 415 | #ifdef EAI_BADHINTS |
| 416 | case EAI_BADHINTS: return "invalid value for hints"; |
| 417 | #endif |
| 418 | case EAI_FAIL: return "non-recoverable failure in name resolution"; |
| 419 | case EAI_FAMILY: return "ai_family not supported"; |
| 420 | case EAI_MEMORY: return "memory allocation failure"; |
| 421 | case EAI_NONAME: |
| 422 | return "host or service not provided, or not known"; |
| 423 | #ifdef EAI_OVERFLOW |
| 424 | case EAI_OVERFLOW: return "argument buffer overflow"; |
| 425 | #endif |
| 426 | #ifdef EAI_PROTOCOL |
| 427 | case EAI_PROTOCOL: return "resolved protocol is unknown"; |
| 428 | #endif |
| 429 | case EAI_SERVICE: return "service not supported for socket type"; |
| 430 | case EAI_SOCKTYPE: return "ai_socktype not supported"; |
| 431 | #ifdef EAI_SYSTEM |
| 432 | case EAI_SYSTEM: return strerror(errno); |
| 433 | #endif |
| 434 | default: return gai_strerror(err); |
| 435 | } |
| 436 | } |
| 437 |
no test coverage detected