|
|
- diff -urNp a/lib/nicInfo/nicInfoPosix.c b/lib/nicInfo/nicInfoPosix.c
- --- a/lib/nicInfo/nicInfoPosix.c
- +++ b/lib/nicInfo/nicInfoPosix.c
- @@ -65,6 +65,9 @@
- #include <netinet/in.h>
- #include <arpa/nameser.h>
- #include <resolv.h>
- +#if defined(__linux__) && !defined(__GLIBC__)
- +#include "resolv_compat.h"
- +#endif
-
- #ifdef __linux__
- # include <net/if.h>
- diff -urNp a/lib/nicInfo/resolv_compat.h b/lib/nicInfo/resolv_compat.h
- --- 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 <string.h>
- +
- +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
|