aboutsummaryrefslogtreecommitdiff
path: root/resolv
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-01-05 02:36:27 +0000
committerUlrich Drepper <drepper@redhat.com>2001-01-05 02:36:27 +0000
commit03fbfeb50862cc05552c55c20207d54889416628 (patch)
treeb2cc0bd90970c63ca373ac2745fe3fb7760be654 /resolv
parent06a60d9c89f6cdb2a2ac944bd8b1ddb632b6ceca (diff)
downloadglibc-03fbfeb50862cc05552c55c20207d54889416628.zip
glibc-03fbfeb50862cc05552c55c20207d54889416628.tar.gz
glibc-03fbfeb50862cc05552c55c20207d54889416628.tar.bz2
Update.
2001-01-03 Jakub Jelinek <jakub@redhat.com> * resolv/resolv.h (struct __res_state): Add nsinit field. * resolv/res_send.c (res_nsend): Use it instead of nscount. * resolv/res_init.c (__res_vinit): Initialize it. (res_nclose): Clear it instead of nscount. * malloc/mtrace.pl: Fix matching of addresses. Patch by Aharon Robbins <arnold@skeeve.com>.
Diffstat (limited to 'resolv')
-rw-r--r--resolv/res_init.c3
-rw-r--r--resolv/res_send.c5
-rw-r--r--resolv/resolv.h1
3 files changed, 6 insertions, 3 deletions
diff --git a/resolv/res_init.c b/resolv/res_init.c
index fa60b77..1b14f94 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -177,6 +177,7 @@ __res_vinit(res_state statp, int preinit) {
statp->_flags = 0;
statp->qhook = NULL;
statp->rhook = NULL;
+ statp->_u._ext.nsinit = 0;
statp->_u._ext.nscount = 0;
#ifdef _LIBC
statp->_u._ext.nscount6 = 0;
@@ -544,5 +545,5 @@ res_nclose(res_state statp) {
statp->_u._ext.nssocks[ns] = -1;
}
}
- statp->_u._ext.nscount = 0;
+ statp->_u._ext.nsinit = 0;
}
diff --git a/resolv/res_send.c b/resolv/res_send.c
index cc9fd00..751a5506 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -394,7 +394,7 @@ res_nsend(res_state statp,
* If the ns_addr_list in the resolver context has changed, then
* invalidate our cached copy and the associated timing data.
*/
- if (EXT(statp).nscount != 0) {
+ if (EXT(statp).nsinit) {
int needclose = 0;
if (EXT(statp).nscount != statp->nscount)
@@ -420,7 +420,7 @@ res_nsend(res_state statp,
/*
* Maybe initialize our private copy of the ns_addr_list.
*/
- if (EXT(statp).nscount == 0) {
+ if (EXT(statp).nsinit == 0) {
#ifdef _LIBC
n = 0;
#endif
@@ -454,6 +454,7 @@ res_nsend(res_state statp,
#endif
}
EXT(statp).nscount = statp->nscount;
+ EXT(statp).nsinit = 1;
#ifdef _LIBC
/* If holes left, free memory and set to NULL */
while (n < MAXNS) {
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 6677add..bb8c782 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -154,6 +154,7 @@ struct __res_state {
u_int16_t nstimes[MAXNS]; /* ms. */
int nssocks[MAXNS];
u_int16_t nscount6;
+ u_int16_t nsinit;
struct sockaddr_in6 *nsaddrs[MAXNS];
} _ext;
} _u;