mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-08 17:42:12 +03:00
* resolv/res_mkquery.c (res_nmkquery): Set hp->id to statp->id after
randomization rather than before. * resolv/res_init.c (res_randomid): Don't call gettimeofday here.
This commit is contained in:
@@ -124,24 +124,20 @@ res_nmkquery(res_state statp,
|
||||
incremented by one after the initial randomization which
|
||||
still predictable if the application does multiple
|
||||
requests. */
|
||||
#if 0
|
||||
hp->id = htons(++statp->id);
|
||||
#else
|
||||
hp->id = htons(statp->id);
|
||||
int randombits;
|
||||
do
|
||||
{
|
||||
# ifdef RANDOM_BITS
|
||||
#ifdef RANDOM_BITS
|
||||
RANDOM_BITS (randombits);
|
||||
# else
|
||||
#else
|
||||
struct timeval tv;
|
||||
__gettimeofday (&tv, NULL);
|
||||
randombits = (tv.tv_sec << 8) ^ tv.tv_usec;
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
while ((randombits & 0xffff) == 0);
|
||||
statp->id = (statp->id + randombits) & 0xffff;
|
||||
#endif
|
||||
hp->id = statp->id;
|
||||
hp->opcode = op;
|
||||
hp->rd = (statp->options & RES_RECURSE) != 0;
|
||||
hp->rcode = NOERROR;
|
||||
|
Reference in New Issue
Block a user