summaryrefslogtreecommitdiff
path: root/test/inet/tst-res.c
blob: 79a01044cac3f38b54eb82c6853f1f4e03f3e30c (plain)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdlib.h>
#include <assert.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
#include <netdb.h>

int main(int argc, char **argv)
{
#if defined(__GLIBC__) || defined(__UCLIBC__)
    int r;
    struct __res_state state;

    r = res_ninit(&state);
    if (r) {
        herror("ninit");
		abort();
	}
    r = res_init();
    if (r) {
        herror("init");
		abort();
	}

#ifdef __UCLIBC_HAS_BSD_RES_CLOSE__
    res_close();
#endif
#ifdef __UCLIBC__
	/* assume there is at least one resolver configured */
	assert (state._u._ext.nscount > 0);
#else
	assert (state._u._ext.nscount == 0);
#endif
	assert (state.options & RES_INIT);
    res_nclose(&state);
#ifdef __UCLIBC__
	/* We wipe the whole thing */
	assert ((state.options & RES_INIT) == 0);
#endif
	assert (state._u._ext.nscount == 0);

    return 0;
#else
    return 23;
#endif
}