diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-17 04:58:38 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-17 04:58:38 +0000 |
| commit | ff41345bf28ac782fe29243aac0f1d4ba181e3c8 (patch) | |
| tree | 89e0cce17d3fb50a2459da887c2ee5cfd2bb68ec | |
| parent | 8bccd68259de5d96d0d764e34efdc200c8c62096 (diff) | |
| download | ruby-ff41345bf28ac782fe29243aac0f1d4ba181e3c8.tar.gz ruby-ff41345bf28ac782fe29243aac0f1d4ba181e3c8.tar.xz ruby-ff41345bf28ac782fe29243aac0f1d4ba181e3c8.zip | |
* random.c (fill_random_seed): /dev/urandom is not available on
DOSISH systems.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | random.c | 10 |
2 files changed, 12 insertions, 3 deletions
@@ -1,4 +1,7 @@ -Fri Jul 17 13:55:53 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> +Fri Jul 17 13:58:26 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * random.c (fill_random_seed): /dev/urandom is not available on + DOSISH systems. * random.c (random_equal): new method Random#==. @@ -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 |
