diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-11-01 00:08:54 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-11-01 00:08:54 +0000 |
commit | cb07f6f67db0ef4ccbf3bedfb7c9c4f140773d2c (patch) | |
tree | 2524b26825fbddf3868e2e8a976f030d4e1dd626 /resolv/res_libc.c | |
parent | 6ff8f07aba531a7f8641562889898b1a657d7d54 (diff) | |
download | glibc-cb07f6f67db0ef4ccbf3bedfb7c9c4f140773d2c.tar.gz glibc-cb07f6f67db0ef4ccbf3bedfb7c9c4f140773d2c.tar.xz glibc-cb07f6f67db0ef4ccbf3bedfb7c9c4f140773d2c.zip |
* resolv/res_init.c (__res_iclose): New function. Broken out of
res_nclose. Take addition parameter which determines whether addresses should be freed. (res_nclose): Call __res_iclose. (res_thread_freeres): Likewise. * resolv/res_data.c (res_close): Call __res_iclose. * resolv/res_libc.c (res_init): No need to separately free the addresses. (__res_maybe_init): Likewise. * resolv/res_send.c: Use __res_iclose instead of res_nclose. * resolv/Versions [GLIBC_PRIVATE]: Add __res_iclose. * include/resolv.h: Declare __res_iclose. Add libc_hidden_proto for __res_iclose. * hesiod/hesiod.c (__hesiod_res_set): No need to free name server addresses here again.
Diffstat (limited to 'resolv/res_libc.c')
-rw-r--r-- | resolv/res_libc.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/resolv/res_libc.c b/resolv/res_libc.c index 76abca8442..834773c32f 100644 --- a/resolv/res_libc.c +++ b/resolv/res_libc.c @@ -70,14 +70,8 @@ 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; - } - } + else if (_res.nscount > 0) + __res_iclose (&_res, true); /* Close any VC sockets. */ /* * This one used to initialize implicitly to zero, so unless the app @@ -103,11 +97,7 @@ __res_maybe_init (res_state resp, int preinit) if (resp->options & RES_INIT) { if (__res_initstamp != resp->_u._ext.initstamp) { if (resp->nscount > 0) { - __res_nclose (resp); - for (int ns = 0; ns < MAXNS; ns++) { - free (resp->_u._ext.nsaddrs[ns]); - resp->_u._ext.nsaddrs[ns] = NULL; - } + __res_iclose (resp, true); return __res_vinit (resp, 1); } } |