--- a/lib/nicInfo/nicInfoPosix.c +++ b/lib/nicInfo/nicInfoPosix.c @@ -65,6 +65,9 @@ #include #include #include +#if defined(__linux__) && !defined(__GLIBC__) +#include "resolv_compat.h" +#endif #ifdef __linux__ # include --- a/lib/nicInfo/resolv_compat.h +++ b/lib/nicInfo/resolv_compat.h @@ -0,0 +1,29 @@ +#if !defined(__GLIBC__) +/*************************************************************************** + * resolv_compat.h + * + * Mimick GLIBC's res_ninit() and res_nclose() for musl libc + * Note: res_init() is actually deprecated according to + * http://docs.oracle.com/cd/E36784_01/html/E36875/res-nclose-3resolv.html + **************************************************************************/ +#include + +static inline int res_ninit(res_state statp) +{ + int rc = res_init(); + if (statp != &_res) { + memcpy(statp, &_res, sizeof(*statp)); + } + return rc; +} + +static inline int res_nclose(res_state statp) +{ + if (!statp) + return -1; + if (statp != &_res) { + memset(statp, 0, sizeof(*statp)); + } + return 0; +} +#endif