randomization rather than before.
* resolv/res_init.c (res_randomid): Don't call gettimeofday here.
+2006-09-04 Jakub Jelinek <jakub@redhat.com>
+
+ * 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.
+
2006-08-31 Jakub Jelinek <jakub@redhat.com>
* dlfcn/Makefile (LDLIBS-bug-atexit3-lib.so): Add
u_int
res_randomid(void) {
- struct timeval now;
-
- __gettimeofday(&now, NULL);
- return (0xffff & (now.tv_sec ^ now.tv_usec ^ __getpid()));
+ return 0xffff & __getpid();
}
#ifdef _LIBC
libc_hidden_def (__res_randomid)
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;