diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2017-10-15 09:15:27 -0500 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2017-10-15 09:15:27 -0500 |
commit | d8f267afb5e7d036d0b23125e23b916336b19fa4 (patch) | |
tree | ee47d88d9ce279a12d6b972b902bef376f002951 | |
parent | b611b59a18827dab641cdef54d2d998d36c7c7f6 (diff) | |
download | gcompat-d8f267afb5e7d036d0b23125e23b916336b19fa4.tar.gz gcompat-d8f267afb5e7d036d0b23125e23b916336b19fa4.tar.bz2 gcompat-d8f267afb5e7d036d0b23125e23b916336b19fa4.tar.xz gcompat-d8f267afb5e7d036d0b23125e23b916336b19fa4.zip |
resolv: new module
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | libgcompat/resolv.c | 32 |
2 files changed, 33 insertions, 0 deletions
@@ -7,6 +7,7 @@ LIBGCOMPAT_SRC = \ libgcompat/math.c \ libgcompat/pthread.c \ libgcompat/pwd.c \ + libgcompat/resolv.c \ libgcompat/resource.c \ libgcompat/setjmp.c \ libgcompat/stdio.c \ diff --git a/libgcompat/resolv.c b/libgcompat/resolv.c new file mode 100644 index 0000000..9ded8c9 --- /dev/null +++ b/libgcompat/resolv.c @@ -0,0 +1,32 @@ +/* Original author: Khem Raj <raj.khem@gmail.com> */ +/*************************************************************************** + * 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> /* memcpy, memset */ +#include <resolv.h> /* res_state */ + +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; +} + +extern __typeof(res_ninit) __res_ninit __attribute__((weak, alias("res_ninit"))); +extern __typeof(res_nclose) __res_nclose __attribute__((weak, alias("res_nclose"))); |