}"
. ${NXT_AUTO}feature
fi
+
+
+if [ $nxt_found = no ]; then
+
+ # OpenBSD 5.6 lacks <sys/random.h>.
+
+ nxt_feature="getentropy()"
+ nxt_feature_name=NXT_HAVE_GETENTROPY
+ nxt_feature_test="#include <unistd.h>
+
+ int main(void) {
+ char buf[4];
+
+ if (getentropy(buf, 4) == -1) {
+ return 1;
+ }
+
+ return 0;
+ }"
+ . ${NXT_AUTO}feature
+fi
+
+
+if [ $nxt_found = no ]; then
+
+ # macOS 10.12.
+
+ nxt_feature="getentropy() in sys/random.h"
+ nxt_feature_name=NXT_HAVE_GETENTROPY_SYS_RANDOM
+ nxt_feature_test="#include <unistd.h>
+ #include <sys/random.h>
+
+ int main(void) {
+ char buf[4];
+
+ if (getentropy(buf, 4) == -1) {
+ return 1;
+ }
+
+ return 0;
+ }"
+ . ${NXT_AUTO}feature
+fi
#elif (NXT_HAVE_LINUX_SYS_GETRANDOM)
#include <sys/syscall.h>
#include <linux/random.h>
+#elif (NXT_HAVE_GETENTROPY_SYS_RANDOM)
+#include <sys/random.h>
#endif
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;