Mark Andrews
be333e93ec
remove isc_string_strlcat and isc_string_strlcpy
2018-09-20 14:00:28 +10:00
Mark Andrews
0eda75fec0
don't typedef socklen_t for _MSC_VER >= 1914
2018-09-20 13:51:50 +10:00
Ondřej Surý
2750799132
Assume socklen_t is always available on all supported platforms (except on Windows where it is typedefed to int32_t)
2018-09-07 12:17:40 +02:00
Ondřej Surý
4d46f0f95d
Drop ISC_PLATFORM_USEDECLSPEC and IRS_PLATFORM_USEDECLSPEC as they are platform dependent and only unix vs win32 platform.h header difference is enough
2018-09-07 12:17:30 +02:00
Ondřej Surý
f1d3055d7b
Replace platform ISC_PLATFORM_HAVETFO with config ENABLE_TCP_FASTOPEN
2018-09-07 12:17:30 +02:00
Ondřej Surý
47f18c7d50
Replace platform ISC_PLATFORM_NEEDSTRLCPY and ISC_PLATFORM_NEEDSTRLCAT with AC_CHECK_FUNCS call
2018-09-07 12:17:30 +02:00
Ondřej Surý
f8635fd719
Remove dummy ISC_PLATFORM_NEEDSTRCASESTR define from platform.h
2018-09-07 12:17:30 +02:00
Ondřej Surý
22e5231f99
Remove ISC_PLATFORM_BUSYWAITNOP in favour of direct isc_rwlock_pause() define
2018-09-07 12:17:29 +02:00
Ondřej Surý
510bb376e1
Define platform.h ISC_PLATFORM_USEBACKTRACE with config.h USE_BACKTRACE
2018-09-07 12:17:29 +02:00
Ondřej Surý
0dc714c40d
On 32-bit Windows use only default memory ordering
2018-09-05 22:20:58 +02:00
Ondřej Surý
25248eb097
Bail-out early in the for install loops instead of continuing because for masks the error in the middle
2018-09-03 12:05:45 +02:00
Ondřej Surý
e582d085de
Fix InterlockedCompareExchange64Acquire -> InterlockedCompareExchangeAcquire64 and variants
2018-08-29 22:23:46 +02:00
Ondřej Surý
d967e107f6
Remove isc_net_pton and isc_net_ntop from Windows libisc.def.in
2018-08-29 21:21:52 +02:00
Ondřej Surý
aa3e33575d
Fixup Windows build after strerr changes
2018-08-29 21:21:52 +02:00
Evan Hunt
1656152d76
Ensure that POSIX strerror_r variant is use even when _GNU_SOURCE is enabled by default
2018-08-29 13:31:28 +02:00
Ondřej Surý
fecbc7923a
Remove isc_keyboard family of functions as they were not used anywhere
2018-08-28 14:37:30 +02:00
Ondřej Surý
0a7535ac81
isc_refcount_init() now doesn't return isc_result_t and asserts on failed initialization
2018-08-28 12:15:39 +02:00
Ondřej Surý
e119de4169
Replace arch specific atomic.h with global atomic.h header using either stdatomic, __atomic or __sync primitives
2018-08-28 12:15:39 +02:00
Ondřej Surý
1672935717
Use strerror_r from POSIX.1-2001 (strerror_s on Windows) instead of custom isc__strerror()
2018-08-28 10:31:48 +02:00
Ondřej Surý
29c853f500
Remove check for isc_port_t; Windows never have it, Unix always have it
2018-08-28 10:31:48 +02:00
Ondřej Surý
388d6db5a1
Remove support for legacy systems without inet_{ntop,pton} w/ IPv6 support
2018-08-28 10:31:48 +02:00
Ondřej Surý
3ab9c99567
Remove support for legacy systems without in6_pktinfo
2018-08-28 10:31:48 +02:00
Ondřej Surý
8c526df306
Remove support for legacy systems without sin6_scope_id
2018-08-28 10:31:48 +02:00
Ondřej Surý
5083a42072
Remove support for legacy systems without in6addr_any
2018-08-28 10:31:48 +02:00
Ondřej Surý
7b21bbb7c1
Require IPv6 support from the OS
2018-08-28 10:31:47 +02:00
Ondřej Surý
00ca487fec
We always want IPv6
2018-08-28 10:31:47 +02:00
Ondřej Surý
f0f71420c8
Remove legacy support for AIX
2018-08-28 10:31:47 +02:00
Ondřej Surý
7ab228cf71
Use __declspec( thread ) for thread local storage when compiling with Visual Studio 2015 and higher
2018-08-25 13:59:26 +02:00
Witold Kręcicki
5cdb38c2c7
Remove unthreaded support
2018-08-16 17:18:52 +02:00
Ondřej Surý
c5040e5c9e
Add @OPENSSL_LIB@ to Windows project files as needed
2018-08-10 16:45:00 +02:00
Ondřej Surý
7351c505a0
Remove duplicate config.h
2018-08-08 09:37:30 +02:00
Ondřej Surý
994e656977
Replace custom isc_boolean_t with C standard bool type
2018-08-08 09:37:30 +02:00
Ondřej Surý
cb6a185c69
Replace custom isc_u?intNN_t types with C99 u?intNN_t types
2018-08-08 09:37:28 +02:00
Ondřej Surý
055278c936
Get rid of extra UINT64_MAX definition in lib/isc/win32/time.c
2018-08-08 09:36:44 +02:00
Ondřej Surý
64fe6bbaf2
Replace ISC_PRINT_QUADFORMAT with inttypes.h format constants
2018-08-08 09:36:44 +02:00
Ondřej Surý
20faf4652a
Change isc_buffer_reallocate() into a static functions as it is not used outside of isc_buffer_reserve()
2018-07-31 22:00:30 +02:00
Ondřej Surý
66ba2fdad5
Replace isc_safe routines with their OpenSSL counter parts
2018-07-20 00:34:26 -04:00
Ondřej Surý
83cde08522
Introduce USE_OPENSSL define to Windows build, remove CRYPTO and AES conditions.
2018-07-19 16:54:53 -04:00
Ondřej Surý
08974f39f1
Fix the Windows build
2018-07-19 14:00:40 -04:00
Ondřej Surý
c3b8130fe8
Make OpenSSL mandatory
2018-07-19 12:47:03 -04:00
Ondřej Surý
302c6cbe7f
Add thin openssl shim for OpenSSL 1.1.x and LibreSSL compatibility functions
2018-06-13 14:19:07 +02:00
Ondřej Surý
4f6d6919ab
Remove thread_local macro from win32 platform.h
2018-05-30 23:03:22 +02:00
Ondřej Surý
e50210c695
Add isc_entropy_get to libisc.def.in
2018-05-30 22:34:57 +02:00
Ondřej Surý
eb242959cb
Add nonce.{c,h} and entropy.c to libisc.vcxproj.*
2018-05-30 22:07:51 +02:00
Ondřej Surý
05d7aa5734
Fix various build failures on Windows (Courtesy of rockerinthelocker)
2018-05-30 15:09:55 +02:00
Evan Hunt
3abb2db9e8
fix missing config.h and win32 symbols
2018-05-29 18:39:56 -07:00
Ondřej Surý
ce71d94434
Make the xoshiro128plusplus thread-safe
2018-05-29 22:58:49 +02:00
Ondřej Surý
99ba29bc52
Change isc_random() to be just PRNG, and add isc_nonce_buf() that uses CSPRNG
...
This commit reverts the previous change to use system provided
entropy, as (SYS_)getrandom is very slow on Linux because it is
a syscall.
The change introduced in this commit adds a new call isc_nonce_buf
that uses CSPRNG from cryptographic library provider to generate
secure data that can be and must be used for generating nonces.
Example usage would be DNS cookies.
The isc_random() API has been changed to use fast PRNG that is not
cryptographically secure, but runs entirely in user space. Two
contestants have been considered xoroshiro family of the functions
by Villa&Blackman and PCG by O'Neill. After a consideration the
xoshiro128starstar function has been used as uint32_t random number
provider because it is very fast and has good enough properties
for our usage pattern.
The other change introduced in the commit is the more extensive usage
of isc_random_uniform in places where the usage pattern was
isc_random() % n to prevent modulo bias. For usage patterns where
only 16 or 8 bits are needed (DNS Message ID), the isc_random()
functions has been renamed to isc_random32(), and isc_random16() and
isc_random8() functions have been introduced by &-ing the
isc_random32() output with 0xffff and 0xff. Please note that the
functions that uses stripped down bit count doesn't pass our
NIST SP 800-22 based random test.
2018-05-29 22:58:21 +02:00
Ondřej Surý
7ee8a7e69f
address win32 build issues
...
- Replace external -DOPENSSL/-DPKCS11CRYPTO with properly AC_DEFINEd
HAVE_OPENSSL/HAVE_PKCS11
- Don't enforce the crypto provider from platform.h, just from dst_api.c
and configure scripts
2018-05-22 16:32:21 -07:00
Ondřej Surý
2b8fab6828
Remove genrandom command and all usage of specific random files throughout the system test suite
2018-05-16 09:54:35 +02:00