gstein 99/11/26 11:31:23
Modified: src/modules/standard mod_rewrite.c
Log:
The floating point rounding performed by the ap_snprintf() was throwing
off the distribution of the random value. The much simpler forms works
just as well, and provides a normal distribution.
Revision Changes Path
1.151 +1 -9 apache-1.3/src/modules/standard/mod_rewrite.c
Index: mod_rewrite.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_rewrite.c,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -r1.150 -r1.151
--- mod_rewrite.c 1999/10/27 09:13:17 1.150
+++ mod_rewrite.c 1999/11/26 19:31:21 1.151
@@ -3047,16 +3047,8 @@
static int rewrite_rand(int l, int h)
{
- int i;
- char buf[50];
-
rewrite_rand_init();
- ap_snprintf(buf, sizeof(buf), "%.0f",
- (((double)(rand()%RAND_MAX)/RAND_MAX)*(h-l)));
- i = atoi(buf)+1;
- if (i < l) i = l;
- if (i > h) i = h;
- return i;
+ return rand() % (h - l + 1) + l;
}
static char *select_random_value_part(request_rec *r, char *value)