summaryrefslogtreecommitdiff
path: root/evutil_rand.c
diff options
context:
space:
mode:
authorMitchell Livingston <livings124@users.sourceforge.net>2011-08-08 17:06:46 -0400
committerNick Mathewson <nickm@torproject.org>2011-08-08 22:03:34 -0400
commitb4423029b940eb5c71ac8aca7fdaeddce1a25316 (patch)
treea6db650183132309dba691a2d74ebc9ee4f87bfa /evutil_rand.c
parent4a343943bd5c93ea1a4c0b80633bc417aeb63969 (diff)
downloadlibevent-b4423029b940eb5c71ac8aca7fdaeddce1a25316.tar.gz
Allow OS-neutral builds for platforms where some versions have arc4random_buf
Diffstat (limited to 'evutil_rand.c')
-rw-r--r--evutil_rand.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/evutil_rand.c b/evutil_rand.c
index 27b505d6..d2bbd46d 100644
--- a/evutil_rand.c
+++ b/evutil_rand.c
@@ -55,10 +55,12 @@ evutil_secure_rng_global_setup_locks_(const int enable_locks)
return 0;
}
-#ifndef _EVENT_HAVE_ARC4RANDOM_BUF
static void
-arc4random_buf(void *buf, size_t n)
+ev_arc4random_buf(void *buf, size_t n)
{
+#ifdef _EVENT_HAVE_ARC4RANDOM_BUF
+ return arc4random_buf(buf, n);
+#else
unsigned char *b = buf;
/* Make sure that we start out with b at a 4-byte alignment; plenty
* of CPUs care about this for 32-bit access. */
@@ -78,8 +80,8 @@ arc4random_buf(void *buf, size_t n)
ev_uint32_t u = arc4random();
memcpy(b, &u, n);
}
-}
#endif
+}
#else /* !_EVENT_HAVE_ARC4RANDOM { */
@@ -122,12 +124,18 @@ evutil_secure_rng_init(void)
return val;
}
+static void
+ev_arc4random_buf(void *buf, size_t n)
+{
+ arc4random_buf(buf, n);
+}
+
#endif /* } !_EVENT_HAVE_ARC4RANDOM */
void
evutil_secure_rng_get_bytes(void *buf, size_t n)
{
- arc4random_buf(buf, n);
+ ev_arc4random_buf(buf, n);
}
void