From ed52949e7960693eb2498d20b8e4d4cc06c3a801 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 17 Jul 2009 04:58:38 +0000 Subject: * random.c (fill_random_seed): /dev/urandom is not available on DOSISH systems. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- random.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'random.c') diff --git a/random.c b/random.c index caa33babbd..c504ca22c1 100644 --- a/random.c +++ b/random.c @@ -375,19 +375,25 @@ random_init(int argc, VALUE *argv, VALUE obj) #define DEFAULT_SEED_LEN (DEFAULT_SEED_CNT * sizeof(int)) +#if defined(S_ISCHR) && !defined(DOSISH) +# define USE_DEV_URANDOM 1 +#else +# define USE_DEV_URANDOM 0 +#endif + static void fill_random_seed(unsigned int seed[DEFAULT_SEED_CNT]) { static int n = 0; struct timeval tv; -#ifdef S_ISCHR +#if USE_DEV_URANDOM int fd; struct stat statbuf; #endif memset(seed, 0, DEFAULT_SEED_LEN); -#ifdef S_ISCHR +#if USE_DEV_URANDOM if ((fd = open("/dev/urandom", O_RDONLY #ifdef O_NONBLOCK |O_NONBLOCK -- cgit v1.2.3