From 7bd3eb3b1ad4209ac4cf4b46f849213d46bc33aa Mon Sep 17 00:00:00 2001 From: David Timber Date: Mon, 17 Aug 2020 18:16:49 +0930 Subject: Employ pthsem ... * Use uint8_t array for hardcoded binary data * Add proone-ipaddr-arr to hardcode DoT servers * Convert X509 data * Brought back M68k and ARC archs just in case * Add CLOCK_REALTIME in prne_mbedtls_entropy_proc_src_f for more entropy * Remove installation of signal handlers. Use sigwait() instead * Bugfix: prne_rnd_anum_str() returned null characters * Add prne_dbgpf() and prne_dbgperr() * prne_assert(): put errno into a register so it's visible in the core dump --- src/util_rt.c | 44 +++++++++++++++----------------------------- 1 file changed, 15 insertions(+), 29 deletions(-) (limited to 'src/util_rt.c') diff --git a/src/util_rt.c b/src/util_rt.c index cdf4526..d42cc7d 100644 --- a/src/util_rt.c +++ b/src/util_rt.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -12,41 +13,20 @@ #include #include +#include -void prne_ok_or_die (const int ret) { - if (ret < 0) { - abort(); - } -} - -void prne_true_or_die (const bool ret) { +void prne_assert (const bool ret) { if (!ret) { - abort(); - } -} + volatile const int err = errno; -void prne_empty_func (void) {} - -bool prne_is_nonblock_errno (void) { - switch (errno) { -#if EAGAIN == EWOULDBLOCK - case EAGAIN: -#else - case EAGAIN: - case EWOULDBLOCK: -#endif - case EINPROGRESS: - return true; + if (true || err) { + abort(); + } } - return false; } -void prne_die_not_nonblock_err (void) { - if (!prne_is_nonblock_errno()) { - abort(); - } -} +void prne_empty_func (void) {} void prne_close (const int fd) { if (fd >= 0) { @@ -146,7 +126,7 @@ size_t prne_nstrlen (const char *s) { } void prne_rnd_anum_str (mbedtls_ctr_drbg_context *rnd, char *str, const size_t len) { - static const char SET[] = "qwertyuiopasdfghjklzxcvbnm0123456789"; + static const char SET[] = { 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; size_t i = 0; uint32_t n; @@ -339,6 +319,12 @@ struct timespec prne_max_timespec (const struct timespec a, const struct timespe return prne_cmp_timespec(a, b) > 0 ? a : b; } +struct timespec prne_gettime (const clockid_t cid) { + struct timespec ret; + prne_assert(clock_gettime(cid, &ret) == 0); + return ret; +} + char *prne_enc_base64_mem (const uint8_t *data, const size_t size) { size_t ret_size; char *ret; -- cgit