blob: 9ded8c9b4ade4314fe025a52730a20c2f7b81082 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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")));
|