This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Fri, Jun 13, 2014 at 05:32:13PM +0200, Aurelien Jarno wrote: > The rotate option doesn't work correctly, and only send the query to the > same server (the second in the list). The rotation code in itself is not > broken, but the nsaddrs structure is reinitialized each time at the > beginning of __libc_res_nsend unless RES_STAYOPEN is enabled. > > This is due to a call to __res_iclose from the end of __libc_res_nsend > when answers from the name server have been received. This function > closes all the sockets, but doesn't free the addresses (it can do that, > but in that case the second argument is false). > > This patch change the code of __res_iclose to clear > statp->_u._ext.nsinit only when the addresses are actually freed. > > 2014-06-13 Aurelien Jarno <aurelien@aurel32.net> > > * resolv/res_init.c (__res_iclose): Only clear nsinit if the > addresses have been freed. Looks good to me, but I think this deserves a separate bug report from the general 'ipv6 name resolution is broken' bug report you filed for this patchset. Siddhesh > > diff --git a/resolv/res_init.c b/resolv/res_init.c > index 95564af..42e16b6 100644 > --- a/resolv/res_init.c > +++ b/resolv/res_init.c > @@ -621,7 +621,8 @@ __res_iclose(res_state statp, bool free_addr) { > statp->_u._ext.nsaddrs[ns] = NULL; > } > } > - statp->_u._ext.nsinit = 0; > + if (free_addr) > + statp->_u._ext.nsinit = 0; > } > libc_hidden_def (__res_iclose) > > -- > 2.0.0 >
Attachment:
pgpsjdMhubnUB.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |