summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/resolv.h5
-rw-r--r--libc/inet/resolv.c13
2 files changed, 4 insertions, 14 deletions
diff --git a/include/resolv.h b/include/resolv.h
index 79c3974f8..815b3a92a 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -216,12 +216,11 @@ typedef struct __res_state *res_state;
#define RES_PRF_INIT 0x00004000
/* 0x00008000 */
-
-#ifndef __BIND_NOSTATIC
-
/* Internal (static) resolver context. */
extern struct __res_state _res;
+#ifndef __BIND_NOSTATIC
+
#define fp_nquery __fp_nquery
#define fp_query __fp_query
#define hostalias __hostalias
diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c
index 7dc5bc51e..62b091770 100644
--- a/libc/inet/resolv.c
+++ b/libc/inet/resolv.c
@@ -967,16 +967,11 @@ struct netent * getnetbyname(const char * name)
#ifdef L_res_init
-struct __res_state * __res;
+struct __res_state _res;
int res_init(void)
{
- struct __res_state *rp = __res;
- if(!__res) {
- rp = (struct __res_state *) malloc(sizeof(struct __res_state));
- memset(rp, 0, sizeof(struct __res_state));
- __res = rp;
- }
+ struct __res_state *rp = &(_res);
__open_nameservers();
rp->retrans = RES_TIMEOUT;
@@ -1021,10 +1016,6 @@ int res_init(void)
void res_close( void )
{
- if(__res) {
- free(__res);
- __res = NULL;
- }
return;
}