Add Win32 random state routines.
authorOrion Lawlor <olawlor@acm.org>
Wed, 5 Sep 2001 19:19:09 +0000 (19:19 +0000)
committerOrion Lawlor <olawlor@acm.org>
Wed, 5 Sep 2001 19:19:09 +0000 (19:19 +0000)
src/conv-ccs/ccs-auth.c

index 963c78fb3ec86dfe582724c79004b5bd19270d42..e03e6913238a6e1d7a96f7e4f83be0177fc40c2b 100644 (file)
@@ -226,22 +226,32 @@ int  CCS_AUTH_differ(const CcsSec_secretKey *key,unsigned int salt,
 /********************************************************
 Randomness routines: return a good 32-bit random number.
 */
-#include <stdlib.h>
+#include <stdlib.h>\r
+\r
+#if defined(_WIN32) && ! defined(__CYGWIN__)\r
+#include <sys/timeb.h>\r
+#else /*UNIX machine*/
 #include <sys/time.h>
-#include <fcntl.h>
+#include <fcntl.h>\r
+#endif
 
 void CCS_RAND_new(CCS_RAND_state *s)
 {
   int i,randFD;
   static int newCount=0;
-  byte8 tmp[sizeof(s->state)];
-
-/*Fill the state buffer with random noise*/
-  /* State buffer starts out uninitialized. */
-
-  /* XOR in a linear counter */
-  s->state[32] ^= newCount++;
-  
+  byte8 tmp[sizeof(s->state)];\r
+\r
+  /* State buffer starts out uninitialized. */\r
+  /* XOR in a linear counter */\r
+  s->state[32] ^= newCount++;\r
+\r
+/*Fill the state buffer with random noise*/\r
+\r
+#if defined(_WIN32) && ! defined(__CYGWIN__)\r
+  _ftime((struct _timeb *)tmp);\r
+  for (i=0;i<sizeof(s->state);i++)\r
+    s->state[i]^=tmp[i];\r
+#else /*UNIX machine*/
   /* XOR the current time of day into the state buffer*/
   gettimeofday((struct timeval *)tmp,NULL);
   for (i=0;i<sizeof(s->state);i++)
@@ -254,7 +264,8 @@ void CCS_RAND_new(CCS_RAND_state *s)
       for (i=0;i<sizeof(s->state);i++)
        s->state[i]^=tmp[i];
     close(randFD);
-  }
+  }\r
+#endif
 }
 
 word32 CCS_RAND_next(CCS_RAND_state *s) {