]> granicus.if.org Git - libevent/commitdiff
Detect arch4random_addrandom() existence
authorMarek Sebera <marek.sebera@gmail.com>
Sun, 5 Mar 2017 21:55:16 +0000 (00:55 +0300)
committerAzat Khuzhin <a3at.mail@gmail.com>
Wed, 8 Mar 2017 10:31:55 +0000 (13:31 +0300)
Refs: #370
Refs: #475

CMakeLists.txt
configure.ac
evutil_rand.c
include/event2/util.h

index a861e7d96340c19e0dcca05eceb0ac4bcec9bded..f609d02d0331ed166d2fd88bb77739607d31aea2 100644 (file)
@@ -338,6 +338,7 @@ CHECK_FUNCTION_EXISTS_EX(sysctl EVENT__HAVE_SYSCTL)
 CHECK_FUNCTION_EXISTS_EX(accept4 EVENT__HAVE_ACCEPT4)
 CHECK_FUNCTION_EXISTS_EX(arc4random EVENT__HAVE_ARC4RANDOM)
 CHECK_FUNCTION_EXISTS_EX(arc4random_buf EVENT__HAVE_ARC4RANDOM_BUF)
+CHECK_FUNCTION_EXISTS_EX(arc4random_addrandom EVENT__HAVE_ARC4RANDOM_ADDRANDOM)
 CHECK_FUNCTION_EXISTS_EX(epoll_create1 EVENT__HAVE_EPOLL_CREATE1)
 CHECK_FUNCTION_EXISTS_EX(getegid EVENT__HAVE_GETEGID)
 CHECK_FUNCTION_EXISTS_EX(geteuid EVENT__HAVE_GETEUID)
index a127bbc9128482dcad180958a61d1e3c56888aa8..e73c29b146ed23afd4a736b17a17aea8b090d248 100644 (file)
@@ -342,6 +342,7 @@ AC_CHECK_FUNCS([ \
   accept4 \
   arc4random \
   arc4random_buf \
+  arc4random_addrandom \
   eventfd \
   epoll_create1 \
   fcntl \
index 046a14b07a9a637b2096cd95f129e38dd1196685..4be0b1c5e2bb130e7692e359f8ecf0d3813218e5 100644 (file)
@@ -192,12 +192,14 @@ evutil_secure_rng_get_bytes(void *buf, size_t n)
        ev_arc4random_buf(buf, n);
 }
 
+#if !defined(EVENT__HAVE_ARC4RANDOM) || defined(EVENT__HAVE_ARC4RANDOM_ADDRANDOM)
 void
 evutil_secure_rng_add_bytes(const char *buf, size_t n)
 {
        arc4random_addrandom((unsigned char*)buf,
            n>(size_t)INT_MAX ? INT_MAX : (int)n);
 }
+#endif
 
 void
 evutil_free_secure_rng_globals_(void)
index dd4bbb69d081d45f095a01f634cac2b26c66e515..c4af2bd608ce6eafdb0111eaa2a16fc7e7be354b 100644 (file)
@@ -842,6 +842,7 @@ int evutil_secure_rng_init(void);
 EVENT2_EXPORT_SYMBOL
 int evutil_secure_rng_set_urandom_device_file(char *fname);
 
+#ifdef EVENT__HAVE_ARC4RANDOM_ADDRANDOM
 /** Seed the random number generator with extra random bytes.
 
     You should almost never need to call this function; it should be
@@ -858,6 +859,7 @@ int evutil_secure_rng_set_urandom_device_file(char *fname);
  */
 EVENT2_EXPORT_SYMBOL
 void evutil_secure_rng_add_bytes(const char *dat, size_t datlen);
+#endif
 
 #ifdef __cplusplus
 }