diff options
author | Marek Sebera <marek.sebera@gmail.com> | 2017-03-06 00:55:16 +0300 |
---|---|---|
committer | Azat Khuzhin <a3at.mail@gmail.com> | 2017-03-08 13:31:55 +0300 |
commit | 6541168d7037457b8e5c51cc354f11bd94e618b6 (patch) | |
tree | 187ed58f80aa93da750abe8e4cb70c7a1ebf90c1 | |
parent | f479a00894131c91aa68bc67c625e52fb94e42e9 (diff) | |
download | libevent-6541168d7037457b8e5c51cc354f11bd94e618b6.tar.gz |
Detect arch4random_addrandom() existence
Refs: #370
Refs: #475
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | evutil_rand.c | 2 | ||||
-rw-r--r-- | include/event2/util.h | 2 |
4 files changed, 6 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a861e7d9..f609d02d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/configure.ac b/configure.ac index a127bbc9..e73c29b1 100644 --- a/configure.ac +++ b/configure.ac @@ -342,6 +342,7 @@ AC_CHECK_FUNCS([ \ accept4 \ arc4random \ arc4random_buf \ + arc4random_addrandom \ eventfd \ epoll_create1 \ fcntl \ diff --git a/evutil_rand.c b/evutil_rand.c index 046a14b0..4be0b1c5 100644 --- a/evutil_rand.c +++ b/evutil_rand.c @@ -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) diff --git a/include/event2/util.h b/include/event2/util.h index dd4bbb69..c4af2bd6 100644 --- a/include/event2/util.h +++ b/include/event2/util.h @@ -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 } |