diff options
author | Dafydd Harries <dafydd.harries@collabora.co.uk> | 2007-02-05 17:24:00 +0000 |
---|---|---|
committer | Dafydd Harries <dafydd.harries@collabora.co.uk> | 2007-02-05 17:24:00 +0000 |
commit | 1352895ab8fa0b50a65702fc429db63564077bd7 (patch) | |
tree | d22c82cf113cbe36cc9008269049101777775ccc /random | |
parent | 00f0b1e2e799a86bd001602238785292b63bc961 (diff) | |
download | libnice-1352895ab8fa0b50a65702fc429db63564077bd7.tar.gz |
don't seed new RNGs to 0 by default; allow overriding RNG constructor
darcs-hash:20070205172439-c9803-1407272fc5941c986205b683b05756d7b52eca9e.gz
Diffstat (limited to 'random')
-rw-r--r-- | random/random.c | 15 | ||||
-rw-r--r-- | random/random.h | 3 | ||||
-rw-r--r-- | random/test.c | 3 |
3 files changed, 16 insertions, 5 deletions
diff --git a/random/random.c b/random/random.c index 5a07110..c08555d 100644 --- a/random/random.c +++ b/random/random.c @@ -2,14 +2,21 @@ #include "random.h" #include "random-glib.h" +static NiceRNG * (*nice_rng_new_func) (void) = NULL; + NiceRNG * nice_rng_new (void) { - NiceRNG *rng; + if (nice_rng_new_func == NULL) + return nice_rng_glib_new (); + else + return nice_rng_new_func (); +} - rng = nice_rng_glib_new (); - rng->seed (rng, 0); - return rng; +void +nice_rng_set_new_func (NiceRNG * (*func) (void)) +{ + nice_rng_new_func = func; } void diff --git a/random/random.h b/random/random.h index 2e31e63..5315fb8 100644 --- a/random/random.h +++ b/random/random.h @@ -20,6 +20,9 @@ NiceRNG * nice_rng_new (void); void +nice_rng_set_new_func (NiceRNG * (*func) (void)); + +void nice_rng_seed (NiceRNG *rng, guint32 seed); void diff --git a/random/test.c b/random/test.c index fe55db3..d84b5c0 100644 --- a/random/test.c +++ b/random/test.c @@ -1,7 +1,7 @@ #include <string.h> -#include "random.h" +#include "random-glib.h" int main (void) @@ -9,6 +9,7 @@ main (void) NiceRNG *rng; gchar buf[9]; + nice_rng_set_new_func (nice_rng_glib_new_predictable); rng = nice_rng_new (); nice_rng_generate_bytes_print (rng, 8, buf); buf[8] = '\0'; |