(res_init): If RES_INIT is set and _res.nscount > 0, call __res_nclose
authordrepper <drepper>
Wed, 21 Jul 2004 18:26:43 +0000 (18:26 +0000)
committerdrepper <drepper>
Wed, 21 Jul 2004 18:26:43 +0000 (18:26 +0000)
and free nsaddrs.

resolv/res_libc.c

index 66da110..94bb2fd 100644 (file)
@@ -54,6 +54,14 @@ res_init(void) {
                _res.retry = 4;
        if (!(_res.options & RES_INIT))
                _res.options = RES_DEFAULT;
+       else if (_res.nscount > 0) {
+               __res_nclose (&_res);   /* Close any VC sockets.  */
+
+               for (int ns = 0; ns < MAXNS; ns++) {
+                       free (_res._u._ext.nsaddrs[ns]);
+                       _res._u._ext.nsaddrs[ns] = NULL;
+               }
+       }
 
        /*
         * This one used to initialize implicitly to zero, so unless the app