* resolv/res_mkquery.c (res_nmkquery): Set hp->id to statp->id after
authorUlrich Drepper <drepper@redhat.com>
Mon, 4 Sep 2006 18:00:58 +0000 (18:00 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 4 Sep 2006 18:00:58 +0000 (18:00 +0000)
randomization rather than before.
* resolv/res_init.c (res_randomid): Don't call gettimeofday here.

ChangeLog
resolv/res_init.c
resolv/res_mkquery.c

index 54dc010..644f5ce 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+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
index f881060..b5a03d1 100644 (file)
@@ -537,10 +537,7 @@ net_mask(in)               /* XXX - should really use system's version of this */
 
 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)
index 4d98b8c..fd80569 100644 (file)
@@ -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;