When getaddrinfo() cannot allocate file descriptor glibc/musl-libc on
linux report EAI_SYSTEM error. But this is not true for freebsd libc [1]
(and hence apple libc [2]), they report EAI_NONAME error instead, so
adjust expectation.
[1]: https://github.com/freebsd/freebsd/blob/master/lib/libc/net/getaddrinfo.c
[2]: https://opensource.apple.com/source/Libc/
Refs: #749
Refs: https://github.com/libevent/libevent/issues/749#issuecomment-
457838159
if (emfile) {
success = BEV_EVENT_ERROR;
+#ifdef __linux__
+ /* on linux glibc/musl reports EAI_SYSTEM, when getaddrinfo() cannot
+ * open file for resolving service. */
default_error = EVUTIL_EAI_SYSTEM;
+#else
+ /* on osx/freebsd it returns EAI_NONAME */
+ default_error = EVUTIL_EAI_NONAME;
+#endif
}
be_connect_hostname_base = data->base;