aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2017-12-03 15:21:12 +0100
committerKim Alvefur <zash@zash.se>2017-12-03 15:21:12 +0100
commitabb425e70f217eb660aadb29885e07a7238b7feb (patch)
tree7bf81f4d70bac58ed3522b88d14c3c0dbeb9c487
parentda570eb0a423c412d44ddc0855826037232d928f (diff)
downloadprosody-abb425e70f217eb660aadb29885e07a7238b7feb.tar.gz
prosody-abb425e70f217eb660aadb29885e07a7238b7feb.zip
util.crand: Make it possible to use arc4random on Linux (needs libbsd)
-rwxr-xr-xconfigure2
-rw-r--r--util-src/crand.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/configure b/configure
index c26f78ed..13f7eff3 100755
--- a/configure
+++ b/configure
@@ -528,6 +528,8 @@ OPENSSL_LIBS="-l$OPENSSL_LIB"
if [ "$PRNG" = "OPENSSL" ]; then
PRNGLIBS=$OPENSSL_LIBS
+elif [ "$PRNG" = "ARC4RANDOM" -a "$(uname)" = "Linux" ]; then
+ PRNGLIBS="-lbsd"
fi
# Write config
diff --git a/util-src/crand.c b/util-src/crand.c
index ab2f4ad1..cdc3c211 100644
--- a/util-src/crand.c
+++ b/util-src/crand.c
@@ -54,7 +54,11 @@ int getrandom(void *buf, size_t buflen, unsigned int flags) {
#elif defined(WITH_OPENSSL)
#include <openssl/rand.h>
-#elif ! defined(WITH_ARC4RANDOM)
+#elif defined(WITH_ARC4RANDOM)
+#ifdef __linux__
+#include <bsd/stdlib.h>
+#endif
+#else
#error util.crand compiled without a random source
#endif