summaryrefslogtreecommitdiffstats
path: root/x11vnc/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11vnc/util.c')
-rw-r--r--x11vnc/util.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/x11vnc/util.c b/x11vnc/util.c
index 7b59bb2..8e18781 100644
--- a/x11vnc/util.c
+++ b/x11vnc/util.c
@@ -399,8 +399,23 @@ double rnow(void) {
}
double rfac(void) {
- double f = (double) rand();
+ double f;
+ static int first = 1;
+
+ if (first) {
+ unsigned int s;
+ if (getenv("RAND_SEED")) {
+ s = (unsigned int) atoi(getenv("RAND_SEED"));
+ } else {
+ s = (unsigned int) ((int) getpid() + 100000 * rnow());
+ }
+ srand(s);
+ first = 0;
+ }
+
+ f = (double) rand();
f = f / ((double) RAND_MAX);
+
return f;
}