summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2018-07-16 13:30:11 +0300
committerSergey Kandaurov <pluknet@nginx.com>2018-07-16 13:30:11 +0300
commit7c5a710c5543debff0c70cb4839e15e9a1da322b (patch)
treea7ee30b8e7aa308a19ee8a98bc745f6a26d9cf38 /src
parentbf1cb8f399b2b580da5c014439eff038e9d1315f (diff)
downloadunit-7c5a710c5543debff0c70cb4839e15e9a1da322b.tar.gz
unit-7c5a710c5543debff0c70cb4839e15e9a1da322b.tar.bz2
Added getentropy() support.
Prodded by David Carlier.
Diffstat (limited to '')
-rw-r--r--src/nxt_random.c8
-rw-r--r--src/nxt_unix.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/src/nxt_random.c b/src/nxt_random.c
index b6c9f704..aaa39887 100644
--- a/src/nxt_random.c
+++ b/src/nxt_random.c
@@ -68,6 +68,14 @@ nxt_random_stir(nxt_random_t *r)
n = syscall(SYS_getrandom, &key, NXT_RANDOM_KEY_SIZE, 0);
+#elif (NXT_HAVE_GETENTROPY || NXT_HAVE_GETENTROPY_SYS_RANDOM)
+
+ n = 0;
+
+ if (getentropy(&key, NXT_RANDOM_KEY_SIZE) == 0) {
+ n = NXT_RANDOM_KEY_SIZE;
+ }
+
#else
n = 0;
diff --git a/src/nxt_unix.h b/src/nxt_unix.h
index 33e9f247..151dd555 100644
--- a/src/nxt_unix.h
+++ b/src/nxt_unix.h
@@ -234,6 +234,8 @@
#include <sys/random.h> /* getrandom(). */
#elif (NXT_HAVE_LINUX_SYS_GETRANDOM)
#include <linux/random.h> /* SYS_getrandom. */
+#elif (NXT_HAVE_GETENTROPY_SYS_RANDOM)
+#include <sys/random.h> /* getentropy(). */
#endif