OSDN Git Service

Fixup struct _res handling so apps using struct _res can actually
authorEric Andersen <andersen@codepoet.org>
Mon, 19 Aug 2002 11:07:21 +0000 (11:07 -0000)
committerEric Andersen <andersen@codepoet.org>
Mon, 19 Aug 2002 11:07:21 +0000 (11:07 -0000)
compile ("worst standard ever!")
 -Erik

include/resolv.h
libc/inet/resolv.c

index 79c3974..815b3a9 100644 (file)
@@ -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
index 7dc5bc5..62b0917 100644 (file)
@@ -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;
 }