[前][次][番号順一覧][スレッド一覧]

ruby-changes:12463

From: nobu <ko1@a...>
Date: Fri, 17 Jul 2009 13:58:56 +0900 (JST)
Subject: [ruby-changes:12463] Ruby:r24163 (trunk): * random.c (fill_random_seed): /dev/urandom is not available on

nobu	2009-07-17 13:58:38 +0900 (Fri, 17 Jul 2009)

  New Revision: 24163

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24163

  Log:
    * random.c (fill_random_seed): /dev/urandom is not available on
      DOSISH systems.

  Modified files:
    trunk/ChangeLog
    trunk/random.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 24162)
+++ ChangeLog	(revision 24163)
@@ -1,5 +1,8 @@
-Fri Jul 17 13:55:53 2009  Nobuyoshi Nakada  <nobu@r...>
+Fri Jul 17 13:58:26 2009  Nobuyoshi Nakada  <nobu@r...>
 
+	* random.c (fill_random_seed): /dev/urandom is not available on
+	  DOSISH systems.
+
 	* random.c (random_equal): new method Random#==.
 
 Fri Jul 17 13:35:47 2009  Tanaka Akira  <akr@f...>
Index: random.c
===================================================================
--- random.c	(revision 24162)
+++ random.c	(revision 24163)
@@ -375,19 +375,25 @@
 
 #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

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]