/src/dovecot/src/lib/lib.h
Line | Count | Source (jump to first uncovered line) |
1 | | #ifndef LIB_H |
2 | | #define LIB_H |
3 | | |
4 | | #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) |
5 | | # define __BSD_VISIBLE 1 |
6 | | #elif defined(__APPLE__) |
7 | | # define _DARWIN_C_SOURCE 1 |
8 | | #endif |
9 | | #define _BSD_SOURCE 1 |
10 | | #define _DEFAULT_SOURCE 1 |
11 | | #define _POSIX_C_SOURCE 200809L |
12 | | #define _XOPEN_SOURCE 700 |
13 | | |
14 | | /* default lib includes */ |
15 | | #ifdef HAVE_CONFIG_H |
16 | | # include "config.h" |
17 | | #endif |
18 | | |
19 | | /* default system includes - keep these at minimum.. */ |
20 | | #include <stddef.h> /* Solaris defines NULL wrong unless this is used */ |
21 | | #include <stdlib.h> |
22 | | #include <string.h> /* strcmp() etc. */ |
23 | | #ifdef HAVE_STRINGS_H |
24 | | # include <strings.h> /* strcasecmp() etc. */ |
25 | | #endif |
26 | | #include <stdarg.h> /* va_list is used everywhere */ |
27 | | #include <limits.h> /* INT_MAX, etc. */ |
28 | | #include <errno.h> /* error checking is good */ |
29 | | #include <sys/types.h> /* many other includes want this */ |
30 | | #include <stdint.h> /* C99 int types, we mostly need uintmax_t */ |
31 | | #include <inttypes.h> /* PRI* macros */ |
32 | | #ifndef __cplusplus |
33 | | # include <stdbool.h> |
34 | | #endif |
35 | | |
36 | | #include "compat.h" |
37 | | #include "macros.h" |
38 | | #include "failures.h" |
39 | | |
40 | | #include "malloc-overflow.h" |
41 | | #include "data-stack.h" |
42 | | #include "mempool.h" |
43 | | #include "imem.h" |
44 | | #include "byteorder.h" |
45 | | #include "fd-util.h" |
46 | | |
47 | | typedef struct buffer buffer_t; |
48 | | typedef struct buffer string_t; |
49 | | |
50 | | struct istream; |
51 | | struct ostream; |
52 | | |
53 | | typedef void lib_atexit_callback_t(void); |
54 | | |
55 | | #include "array-decl.h" /* ARRAY*()s may exist in any header */ |
56 | | #include "bits.h" |
57 | | #include "hash-decl.h" /* HASH_TABLE*()s may exist in any header */ |
58 | | #include "strfuncs.h" |
59 | | #include "strnum.h" |
60 | | #include "event-log.h" |
61 | | |
62 | | #define LIB_ATEXIT_PRIORITY_HIGH -10 |
63 | | #define LIB_ATEXIT_PRIORITY_DEFAULT 0 |
64 | 2 | #define LIB_ATEXIT_PRIORITY_LOW 10 |
65 | | |
66 | | #define static_assert_array_size(arr, count) \ |
67 | 0 | static_assert(N_ELEMENTS(arr) == (count), "array/enum size mismatch") |
68 | | |
69 | | /* Using memcpy() with NULL pointers is undefined behavior. Make sure we don't |
70 | | do that. */ |
71 | 61.1k | static inline void *i_memcpy(void *dest, const void *src, size_t n) { |
72 | 61.1k | i_assert(dest != NULL && src != NULL); |
73 | 61.1k | return memcpy(dest, src, n); |
74 | 61.1k | } Unexecuted instantiation: buffer.c:i_memcpy Unexecuted instantiation: data-stack.c:i_memcpy Unexecuted instantiation: event-log.c:i_memcpy Unexecuted instantiation: failures.c:i_memcpy Unexecuted instantiation: fd-util.c:i_memcpy Unexecuted instantiation: hostpid.c:i_memcpy Unexecuted instantiation: imem.c:i_memcpy Unexecuted instantiation: iostream-pump.c:i_memcpy Unexecuted instantiation: istream.c:i_memcpy Unexecuted instantiation: istream-data.c:i_memcpy Unexecuted instantiation: ioloop.c:i_memcpy Unexecuted instantiation: ioloop-notify-inotify.c:i_memcpy Unexecuted instantiation: ioloop-epoll.c:i_memcpy Unexecuted instantiation: lib.c:i_memcpy Unexecuted instantiation: lib-event.c:i_memcpy Unexecuted instantiation: lib-signals.c:i_memcpy Unexecuted instantiation: memarea.c:i_memcpy Unexecuted instantiation: mempool.c:i_memcpy mempool-alloconly.c:i_memcpy Line | Count | Source | 71 | 61.1k | static inline void *i_memcpy(void *dest, const void *src, size_t n) { | 72 | 61.1k | i_assert(dest != NULL && src != NULL); | 73 | 61.1k | return memcpy(dest, src, n); | 74 | 61.1k | } |
Unexecuted instantiation: mempool-datastack.c:i_memcpy Unexecuted instantiation: mempool-system.c:i_memcpy Unexecuted instantiation: mempool-unsafe-datastack.c:i_memcpy Unexecuted instantiation: net.c:i_memcpy Unexecuted instantiation: ostream.c:i_memcpy Unexecuted instantiation: ostream-file.c:i_memcpy Unexecuted instantiation: path-util.c:i_memcpy Unexecuted instantiation: printf-format-fix.c:i_memcpy Unexecuted instantiation: process-title.c:i_memcpy Unexecuted instantiation: priorityq.c:i_memcpy Line | Count | Source | 71 | 1 | static inline void *i_memcpy(void *dest, const void *src, size_t n) { | 72 | 1 | i_assert(dest != NULL && src != NULL); | 73 | 1 | return memcpy(dest, src, n); | 74 | 1 | } |
Unexecuted instantiation: rand.c:i_memcpy Unexecuted instantiation: restrict-access.c:i_memcpy Unexecuted instantiation: safe-memset.c:i_memcpy Unexecuted instantiation: sendfile-util.c:i_memcpy Unexecuted instantiation: sleep.c:i_memcpy Unexecuted instantiation: str.c:i_memcpy Unexecuted instantiation: strescape.c:i_memcpy Unexecuted instantiation: strfuncs.c:i_memcpy Unexecuted instantiation: strnum.c:i_memcpy Unexecuted instantiation: time-util.c:i_memcpy Unexecuted instantiation: unichar.c:i_memcpy Unexecuted instantiation: var-expand.c:i_memcpy Unexecuted instantiation: var-expand-if.c:i_memcpy Unexecuted instantiation: wildcard-match.c:i_memcpy Unexecuted instantiation: write-full.c:i_memcpy Unexecuted instantiation: array.c:i_memcpy Unexecuted instantiation: backtrace-string.c:i_memcpy Unexecuted instantiation: base64.c:i_memcpy Unexecuted instantiation: bits.c:i_memcpy Unexecuted instantiation: env-util.c:i_memcpy Unexecuted instantiation: event-filter.c:i_memcpy Unexecuted instantiation: event-filter-lexer.c:i_memcpy Unexecuted instantiation: event-filter-parser.c:i_memcpy Unexecuted instantiation: hash.c:i_memcpy Unexecuted instantiation: hash-method.c:i_memcpy Unexecuted instantiation: hex-binary.c:i_memcpy Unexecuted instantiation: ipwd.c:i_memcpy Unexecuted instantiation: iostream.c:i_memcpy Unexecuted instantiation: ioloop-iolist.c:i_memcpy Unexecuted instantiation: ioloop-notify-fd.c:i_memcpy Unexecuted instantiation: md4.c:i_memcpy Unexecuted instantiation: md5.c:i_memcpy Unexecuted instantiation: pkcs5.c:i_memcpy Unexecuted instantiation: primes.c:i_memcpy Unexecuted instantiation: sha1.c:i_memcpy Unexecuted instantiation: sha2.c:i_memcpy Unexecuted instantiation: sha3.c:i_memcpy Unexecuted instantiation: str-parse.c:i_memcpy Unexecuted instantiation: hmac.c:i_memcpy |
75 | | #ifndef __cplusplus |
76 | 61.1k | # define memcpy(dest, src, n) i_memcpy(dest, src, n) |
77 | | #endif |
78 | | |
79 | | /* /dev/null opened as O_WRONLY. Opened at lib_init(), so it can be accessed |
80 | | also inside chroots. */ |
81 | | extern int dev_null_fd; |
82 | | |
83 | | /* Call unlink(). If it fails, log an error including the source filename |
84 | | and line number. */ |
85 | | int i_unlink(const char *path, const char *source_fname, |
86 | | unsigned int source_linenum); |
87 | | #define i_unlink(path) i_unlink(path, __FILE__, __LINE__) |
88 | | /* Same as i_unlink(), but don't log an error if errno=ENOENT. Returns 1 on |
89 | | unlink() success, 0 if errno=ENOENT, -1 on other errors. */ |
90 | | int i_unlink_if_exists(const char *path, const char *source_fname, |
91 | | unsigned int source_linenum); |
92 | 0 | #define i_unlink_if_exists(path) i_unlink_if_exists(path, __FILE__, __LINE__) |
93 | | /* Reset getopt() so it can be used for the next args. */ |
94 | | void i_getopt_reset(void); |
95 | | |
96 | | /* Call the given callback at the beginning of lib_deinit(). The main |
97 | | difference to atexit() is that liblib's memory allocation and logging |
98 | | functions are still available. Also if lib_atexit() is called multiple times |
99 | | to the same callback, it's added only once. */ |
100 | | void lib_atexit(lib_atexit_callback_t *callback); |
101 | | /* Specify the order in which the callback is called. Lowest numbered |
102 | | priorities are called first. lib_atexit() is called with priority=0. */ |
103 | | void lib_atexit_priority(lib_atexit_callback_t *callback, int priority); |
104 | | /* Manually run the atexit callbacks. lib_deinit() also does this if not |
105 | | explicitly called. */ |
106 | | void lib_atexit_run(void); |
107 | | /* Unless this or lib_deinit() is called, any unexpected exit() will result |
108 | | in abort(). This can be helpful in catching unexpected exits. */ |
109 | | void lib_set_clean_exit(bool set); |
110 | | /* Same as lib_set_clean_exit(TRUE) followed by exit(status). */ |
111 | | void lib_exit(int status) ATTR_NORETURN; |
112 | | |
113 | | void lib_init(void); |
114 | | bool lib_is_initialized(void); |
115 | | void lib_deinit(void); |
116 | | |
117 | | uint32_t i_rand(void); |
118 | | /* Returns a random integer < upper_bound. */ |
119 | | uint32_t i_rand_limit(uint32_t upper_bound); |
120 | | |
121 | | static inline unsigned short i_rand_ushort(void) |
122 | 0 | { |
123 | 0 | return i_rand_limit(USHRT_MAX + 1); |
124 | 0 | } Unexecuted instantiation: buffer.c:i_rand_ushort Unexecuted instantiation: data-stack.c:i_rand_ushort Unexecuted instantiation: event-log.c:i_rand_ushort Unexecuted instantiation: failures.c:i_rand_ushort Unexecuted instantiation: fd-util.c:i_rand_ushort Unexecuted instantiation: hostpid.c:i_rand_ushort Unexecuted instantiation: imem.c:i_rand_ushort Unexecuted instantiation: iostream-pump.c:i_rand_ushort Unexecuted instantiation: istream.c:i_rand_ushort Unexecuted instantiation: istream-data.c:i_rand_ushort Unexecuted instantiation: ioloop.c:i_rand_ushort Unexecuted instantiation: ioloop-notify-inotify.c:i_rand_ushort Unexecuted instantiation: ioloop-epoll.c:i_rand_ushort Unexecuted instantiation: lib.c:i_rand_ushort Unexecuted instantiation: lib-event.c:i_rand_ushort Unexecuted instantiation: lib-signals.c:i_rand_ushort Unexecuted instantiation: memarea.c:i_rand_ushort Unexecuted instantiation: mempool.c:i_rand_ushort Unexecuted instantiation: mempool-alloconly.c:i_rand_ushort Unexecuted instantiation: mempool-datastack.c:i_rand_ushort Unexecuted instantiation: mempool-system.c:i_rand_ushort Unexecuted instantiation: mempool-unsafe-datastack.c:i_rand_ushort Unexecuted instantiation: net.c:i_rand_ushort Unexecuted instantiation: ostream.c:i_rand_ushort Unexecuted instantiation: ostream-file.c:i_rand_ushort Unexecuted instantiation: path-util.c:i_rand_ushort Unexecuted instantiation: printf-format-fix.c:i_rand_ushort Unexecuted instantiation: process-title.c:i_rand_ushort Unexecuted instantiation: priorityq.c:i_rand_ushort Unexecuted instantiation: randgen.c:i_rand_ushort Unexecuted instantiation: rand.c:i_rand_ushort Unexecuted instantiation: restrict-access.c:i_rand_ushort Unexecuted instantiation: safe-memset.c:i_rand_ushort Unexecuted instantiation: sendfile-util.c:i_rand_ushort Unexecuted instantiation: sleep.c:i_rand_ushort Unexecuted instantiation: str.c:i_rand_ushort Unexecuted instantiation: strescape.c:i_rand_ushort Unexecuted instantiation: strfuncs.c:i_rand_ushort Unexecuted instantiation: strnum.c:i_rand_ushort Unexecuted instantiation: time-util.c:i_rand_ushort Unexecuted instantiation: unichar.c:i_rand_ushort Unexecuted instantiation: var-expand.c:i_rand_ushort Unexecuted instantiation: var-expand-if.c:i_rand_ushort Unexecuted instantiation: wildcard-match.c:i_rand_ushort Unexecuted instantiation: write-full.c:i_rand_ushort Unexecuted instantiation: array.c:i_rand_ushort Unexecuted instantiation: backtrace-string.c:i_rand_ushort Unexecuted instantiation: base64.c:i_rand_ushort Unexecuted instantiation: bits.c:i_rand_ushort Unexecuted instantiation: env-util.c:i_rand_ushort Unexecuted instantiation: event-filter.c:i_rand_ushort Unexecuted instantiation: event-filter-lexer.c:i_rand_ushort Unexecuted instantiation: event-filter-parser.c:i_rand_ushort Unexecuted instantiation: hash.c:i_rand_ushort Unexecuted instantiation: hash-method.c:i_rand_ushort Unexecuted instantiation: hex-binary.c:i_rand_ushort Unexecuted instantiation: ipwd.c:i_rand_ushort Unexecuted instantiation: iostream.c:i_rand_ushort Unexecuted instantiation: ioloop-iolist.c:i_rand_ushort Unexecuted instantiation: ioloop-notify-fd.c:i_rand_ushort Unexecuted instantiation: md4.c:i_rand_ushort Unexecuted instantiation: md5.c:i_rand_ushort Unexecuted instantiation: pkcs5.c:i_rand_ushort Unexecuted instantiation: primes.c:i_rand_ushort Unexecuted instantiation: sha1.c:i_rand_ushort Unexecuted instantiation: sha2.c:i_rand_ushort Unexecuted instantiation: sha3.c:i_rand_ushort Unexecuted instantiation: str-parse.c:i_rand_ushort Unexecuted instantiation: hmac.c:i_rand_ushort |
125 | | |
126 | | static inline unsigned char i_rand_uchar(void) |
127 | 0 | { |
128 | 0 | return i_rand_limit(UCHAR_MAX + 1); |
129 | 0 | } Unexecuted instantiation: buffer.c:i_rand_uchar Unexecuted instantiation: data-stack.c:i_rand_uchar Unexecuted instantiation: event-log.c:i_rand_uchar Unexecuted instantiation: failures.c:i_rand_uchar Unexecuted instantiation: fd-util.c:i_rand_uchar Unexecuted instantiation: hostpid.c:i_rand_uchar Unexecuted instantiation: imem.c:i_rand_uchar Unexecuted instantiation: iostream-pump.c:i_rand_uchar Unexecuted instantiation: istream.c:i_rand_uchar Unexecuted instantiation: istream-data.c:i_rand_uchar Unexecuted instantiation: ioloop.c:i_rand_uchar Unexecuted instantiation: ioloop-notify-inotify.c:i_rand_uchar Unexecuted instantiation: ioloop-epoll.c:i_rand_uchar Unexecuted instantiation: lib.c:i_rand_uchar Unexecuted instantiation: lib-event.c:i_rand_uchar Unexecuted instantiation: lib-signals.c:i_rand_uchar Unexecuted instantiation: memarea.c:i_rand_uchar Unexecuted instantiation: mempool.c:i_rand_uchar Unexecuted instantiation: mempool-alloconly.c:i_rand_uchar Unexecuted instantiation: mempool-datastack.c:i_rand_uchar Unexecuted instantiation: mempool-system.c:i_rand_uchar Unexecuted instantiation: mempool-unsafe-datastack.c:i_rand_uchar Unexecuted instantiation: net.c:i_rand_uchar Unexecuted instantiation: ostream.c:i_rand_uchar Unexecuted instantiation: ostream-file.c:i_rand_uchar Unexecuted instantiation: path-util.c:i_rand_uchar Unexecuted instantiation: printf-format-fix.c:i_rand_uchar Unexecuted instantiation: process-title.c:i_rand_uchar Unexecuted instantiation: priorityq.c:i_rand_uchar Unexecuted instantiation: randgen.c:i_rand_uchar Unexecuted instantiation: rand.c:i_rand_uchar Unexecuted instantiation: restrict-access.c:i_rand_uchar Unexecuted instantiation: safe-memset.c:i_rand_uchar Unexecuted instantiation: sendfile-util.c:i_rand_uchar Unexecuted instantiation: sleep.c:i_rand_uchar Unexecuted instantiation: str.c:i_rand_uchar Unexecuted instantiation: strescape.c:i_rand_uchar Unexecuted instantiation: strfuncs.c:i_rand_uchar Unexecuted instantiation: strnum.c:i_rand_uchar Unexecuted instantiation: time-util.c:i_rand_uchar Unexecuted instantiation: unichar.c:i_rand_uchar Unexecuted instantiation: var-expand.c:i_rand_uchar Unexecuted instantiation: var-expand-if.c:i_rand_uchar Unexecuted instantiation: wildcard-match.c:i_rand_uchar Unexecuted instantiation: write-full.c:i_rand_uchar Unexecuted instantiation: array.c:i_rand_uchar Unexecuted instantiation: backtrace-string.c:i_rand_uchar Unexecuted instantiation: base64.c:i_rand_uchar Unexecuted instantiation: bits.c:i_rand_uchar Unexecuted instantiation: env-util.c:i_rand_uchar Unexecuted instantiation: event-filter.c:i_rand_uchar Unexecuted instantiation: event-filter-lexer.c:i_rand_uchar Unexecuted instantiation: event-filter-parser.c:i_rand_uchar Unexecuted instantiation: hash.c:i_rand_uchar Unexecuted instantiation: hash-method.c:i_rand_uchar Unexecuted instantiation: hex-binary.c:i_rand_uchar Unexecuted instantiation: ipwd.c:i_rand_uchar Unexecuted instantiation: iostream.c:i_rand_uchar Unexecuted instantiation: ioloop-iolist.c:i_rand_uchar Unexecuted instantiation: ioloop-notify-fd.c:i_rand_uchar Unexecuted instantiation: md4.c:i_rand_uchar Unexecuted instantiation: md5.c:i_rand_uchar Unexecuted instantiation: pkcs5.c:i_rand_uchar Unexecuted instantiation: primes.c:i_rand_uchar Unexecuted instantiation: sha1.c:i_rand_uchar Unexecuted instantiation: sha2.c:i_rand_uchar Unexecuted instantiation: sha3.c:i_rand_uchar Unexecuted instantiation: str-parse.c:i_rand_uchar Unexecuted instantiation: hmac.c:i_rand_uchar |
130 | | |
131 | | /* Returns a random integer >= min_val, and <= max_val. */ |
132 | | static inline uint32_t i_rand_minmax(uint32_t min_val, uint32_t max_val) |
133 | 0 | { |
134 | 0 | i_assert(min_val <= max_val); |
135 | 0 | return min_val + i_rand_limit(max_val - min_val + 1); |
136 | 0 | } Unexecuted instantiation: buffer.c:i_rand_minmax Unexecuted instantiation: data-stack.c:i_rand_minmax Unexecuted instantiation: event-log.c:i_rand_minmax Unexecuted instantiation: failures.c:i_rand_minmax Unexecuted instantiation: fd-util.c:i_rand_minmax Unexecuted instantiation: hostpid.c:i_rand_minmax Unexecuted instantiation: imem.c:i_rand_minmax Unexecuted instantiation: iostream-pump.c:i_rand_minmax Unexecuted instantiation: istream.c:i_rand_minmax Unexecuted instantiation: istream-data.c:i_rand_minmax Unexecuted instantiation: ioloop.c:i_rand_minmax Unexecuted instantiation: ioloop-notify-inotify.c:i_rand_minmax Unexecuted instantiation: ioloop-epoll.c:i_rand_minmax Unexecuted instantiation: lib.c:i_rand_minmax Unexecuted instantiation: lib-event.c:i_rand_minmax Unexecuted instantiation: lib-signals.c:i_rand_minmax Unexecuted instantiation: memarea.c:i_rand_minmax Unexecuted instantiation: mempool.c:i_rand_minmax Unexecuted instantiation: mempool-alloconly.c:i_rand_minmax Unexecuted instantiation: mempool-datastack.c:i_rand_minmax Unexecuted instantiation: mempool-system.c:i_rand_minmax Unexecuted instantiation: mempool-unsafe-datastack.c:i_rand_minmax Unexecuted instantiation: net.c:i_rand_minmax Unexecuted instantiation: ostream.c:i_rand_minmax Unexecuted instantiation: ostream-file.c:i_rand_minmax Unexecuted instantiation: path-util.c:i_rand_minmax Unexecuted instantiation: printf-format-fix.c:i_rand_minmax Unexecuted instantiation: process-title.c:i_rand_minmax Unexecuted instantiation: priorityq.c:i_rand_minmax Unexecuted instantiation: randgen.c:i_rand_minmax Unexecuted instantiation: rand.c:i_rand_minmax Unexecuted instantiation: restrict-access.c:i_rand_minmax Unexecuted instantiation: safe-memset.c:i_rand_minmax Unexecuted instantiation: sendfile-util.c:i_rand_minmax Unexecuted instantiation: sleep.c:i_rand_minmax Unexecuted instantiation: str.c:i_rand_minmax Unexecuted instantiation: strescape.c:i_rand_minmax Unexecuted instantiation: strfuncs.c:i_rand_minmax Unexecuted instantiation: strnum.c:i_rand_minmax Unexecuted instantiation: time-util.c:i_rand_minmax Unexecuted instantiation: unichar.c:i_rand_minmax Unexecuted instantiation: var-expand.c:i_rand_minmax Unexecuted instantiation: var-expand-if.c:i_rand_minmax Unexecuted instantiation: wildcard-match.c:i_rand_minmax Unexecuted instantiation: write-full.c:i_rand_minmax Unexecuted instantiation: array.c:i_rand_minmax Unexecuted instantiation: backtrace-string.c:i_rand_minmax Unexecuted instantiation: base64.c:i_rand_minmax Unexecuted instantiation: bits.c:i_rand_minmax Unexecuted instantiation: env-util.c:i_rand_minmax Unexecuted instantiation: event-filter.c:i_rand_minmax Unexecuted instantiation: event-filter-lexer.c:i_rand_minmax Unexecuted instantiation: event-filter-parser.c:i_rand_minmax Unexecuted instantiation: hash.c:i_rand_minmax Unexecuted instantiation: hash-method.c:i_rand_minmax Unexecuted instantiation: hex-binary.c:i_rand_minmax Unexecuted instantiation: ipwd.c:i_rand_minmax Unexecuted instantiation: iostream.c:i_rand_minmax Unexecuted instantiation: ioloop-iolist.c:i_rand_minmax Unexecuted instantiation: ioloop-notify-fd.c:i_rand_minmax Unexecuted instantiation: md4.c:i_rand_minmax Unexecuted instantiation: md5.c:i_rand_minmax Unexecuted instantiation: pkcs5.c:i_rand_minmax Unexecuted instantiation: primes.c:i_rand_minmax Unexecuted instantiation: sha1.c:i_rand_minmax Unexecuted instantiation: sha2.c:i_rand_minmax Unexecuted instantiation: sha3.c:i_rand_minmax Unexecuted instantiation: str-parse.c:i_rand_minmax Unexecuted instantiation: hmac.c:i_rand_minmax |
137 | | |
138 | | /* Cast time_t to uint32_t, assert the value fits. */ |
139 | | static inline uint32_t time_to_uint32(time_t ts) |
140 | 0 | { |
141 | 0 | i_assert(ts >= 0); |
142 | 0 | i_assert(ts <= UINT32_MAX); |
143 | 0 | return (uint32_t)(ts & 0xffffffff); |
144 | 0 | } Unexecuted instantiation: buffer.c:time_to_uint32 Unexecuted instantiation: data-stack.c:time_to_uint32 Unexecuted instantiation: event-log.c:time_to_uint32 Unexecuted instantiation: failures.c:time_to_uint32 Unexecuted instantiation: fd-util.c:time_to_uint32 Unexecuted instantiation: hostpid.c:time_to_uint32 Unexecuted instantiation: imem.c:time_to_uint32 Unexecuted instantiation: iostream-pump.c:time_to_uint32 Unexecuted instantiation: istream.c:time_to_uint32 Unexecuted instantiation: istream-data.c:time_to_uint32 Unexecuted instantiation: ioloop.c:time_to_uint32 Unexecuted instantiation: ioloop-notify-inotify.c:time_to_uint32 Unexecuted instantiation: ioloop-epoll.c:time_to_uint32 Unexecuted instantiation: lib.c:time_to_uint32 Unexecuted instantiation: lib-event.c:time_to_uint32 Unexecuted instantiation: lib-signals.c:time_to_uint32 Unexecuted instantiation: memarea.c:time_to_uint32 Unexecuted instantiation: mempool.c:time_to_uint32 Unexecuted instantiation: mempool-alloconly.c:time_to_uint32 Unexecuted instantiation: mempool-datastack.c:time_to_uint32 Unexecuted instantiation: mempool-system.c:time_to_uint32 Unexecuted instantiation: mempool-unsafe-datastack.c:time_to_uint32 Unexecuted instantiation: net.c:time_to_uint32 Unexecuted instantiation: ostream.c:time_to_uint32 Unexecuted instantiation: ostream-file.c:time_to_uint32 Unexecuted instantiation: path-util.c:time_to_uint32 Unexecuted instantiation: printf-format-fix.c:time_to_uint32 Unexecuted instantiation: process-title.c:time_to_uint32 Unexecuted instantiation: priorityq.c:time_to_uint32 Unexecuted instantiation: randgen.c:time_to_uint32 Unexecuted instantiation: rand.c:time_to_uint32 Unexecuted instantiation: restrict-access.c:time_to_uint32 Unexecuted instantiation: safe-memset.c:time_to_uint32 Unexecuted instantiation: sendfile-util.c:time_to_uint32 Unexecuted instantiation: sleep.c:time_to_uint32 Unexecuted instantiation: str.c:time_to_uint32 Unexecuted instantiation: strescape.c:time_to_uint32 Unexecuted instantiation: strfuncs.c:time_to_uint32 Unexecuted instantiation: strnum.c:time_to_uint32 Unexecuted instantiation: time-util.c:time_to_uint32 Unexecuted instantiation: unichar.c:time_to_uint32 Unexecuted instantiation: var-expand.c:time_to_uint32 Unexecuted instantiation: var-expand-if.c:time_to_uint32 Unexecuted instantiation: wildcard-match.c:time_to_uint32 Unexecuted instantiation: write-full.c:time_to_uint32 Unexecuted instantiation: array.c:time_to_uint32 Unexecuted instantiation: backtrace-string.c:time_to_uint32 Unexecuted instantiation: base64.c:time_to_uint32 Unexecuted instantiation: bits.c:time_to_uint32 Unexecuted instantiation: env-util.c:time_to_uint32 Unexecuted instantiation: event-filter.c:time_to_uint32 Unexecuted instantiation: event-filter-lexer.c:time_to_uint32 Unexecuted instantiation: event-filter-parser.c:time_to_uint32 Unexecuted instantiation: hash.c:time_to_uint32 Unexecuted instantiation: hash-method.c:time_to_uint32 Unexecuted instantiation: hex-binary.c:time_to_uint32 Unexecuted instantiation: ipwd.c:time_to_uint32 Unexecuted instantiation: iostream.c:time_to_uint32 Unexecuted instantiation: ioloop-iolist.c:time_to_uint32 Unexecuted instantiation: ioloop-notify-fd.c:time_to_uint32 Unexecuted instantiation: md4.c:time_to_uint32 Unexecuted instantiation: md5.c:time_to_uint32 Unexecuted instantiation: pkcs5.c:time_to_uint32 Unexecuted instantiation: primes.c:time_to_uint32 Unexecuted instantiation: sha1.c:time_to_uint32 Unexecuted instantiation: sha2.c:time_to_uint32 Unexecuted instantiation: sha3.c:time_to_uint32 Unexecuted instantiation: str-parse.c:time_to_uint32 Unexecuted instantiation: hmac.c:time_to_uint32 |
145 | | /* Cast time_t to uint32_t, truncate the value if it does not fit. */ |
146 | | static inline uint32_t time_to_uint32_trunc(time_t ts) |
147 | 0 | { |
148 | 0 | if (ts < 0) |
149 | 0 | return 0; |
150 | 0 | if (ts > UINT32_MAX) |
151 | 0 | return UINT32_MAX; |
152 | 0 | return (uint32_t)(ts & 0xffffffff); |
153 | 0 | } Unexecuted instantiation: buffer.c:time_to_uint32_trunc Unexecuted instantiation: data-stack.c:time_to_uint32_trunc Unexecuted instantiation: event-log.c:time_to_uint32_trunc Unexecuted instantiation: failures.c:time_to_uint32_trunc Unexecuted instantiation: fd-util.c:time_to_uint32_trunc Unexecuted instantiation: hostpid.c:time_to_uint32_trunc Unexecuted instantiation: imem.c:time_to_uint32_trunc Unexecuted instantiation: iostream-pump.c:time_to_uint32_trunc Unexecuted instantiation: istream.c:time_to_uint32_trunc Unexecuted instantiation: istream-data.c:time_to_uint32_trunc Unexecuted instantiation: ioloop.c:time_to_uint32_trunc Unexecuted instantiation: ioloop-notify-inotify.c:time_to_uint32_trunc Unexecuted instantiation: ioloop-epoll.c:time_to_uint32_trunc Unexecuted instantiation: lib.c:time_to_uint32_trunc Unexecuted instantiation: lib-event.c:time_to_uint32_trunc Unexecuted instantiation: lib-signals.c:time_to_uint32_trunc Unexecuted instantiation: memarea.c:time_to_uint32_trunc Unexecuted instantiation: mempool.c:time_to_uint32_trunc Unexecuted instantiation: mempool-alloconly.c:time_to_uint32_trunc Unexecuted instantiation: mempool-datastack.c:time_to_uint32_trunc Unexecuted instantiation: mempool-system.c:time_to_uint32_trunc Unexecuted instantiation: mempool-unsafe-datastack.c:time_to_uint32_trunc Unexecuted instantiation: net.c:time_to_uint32_trunc Unexecuted instantiation: ostream.c:time_to_uint32_trunc Unexecuted instantiation: ostream-file.c:time_to_uint32_trunc Unexecuted instantiation: path-util.c:time_to_uint32_trunc Unexecuted instantiation: printf-format-fix.c:time_to_uint32_trunc Unexecuted instantiation: process-title.c:time_to_uint32_trunc Unexecuted instantiation: priorityq.c:time_to_uint32_trunc Unexecuted instantiation: randgen.c:time_to_uint32_trunc Unexecuted instantiation: rand.c:time_to_uint32_trunc Unexecuted instantiation: restrict-access.c:time_to_uint32_trunc Unexecuted instantiation: safe-memset.c:time_to_uint32_trunc Unexecuted instantiation: sendfile-util.c:time_to_uint32_trunc Unexecuted instantiation: sleep.c:time_to_uint32_trunc Unexecuted instantiation: str.c:time_to_uint32_trunc Unexecuted instantiation: strescape.c:time_to_uint32_trunc Unexecuted instantiation: strfuncs.c:time_to_uint32_trunc Unexecuted instantiation: strnum.c:time_to_uint32_trunc Unexecuted instantiation: time-util.c:time_to_uint32_trunc Unexecuted instantiation: unichar.c:time_to_uint32_trunc Unexecuted instantiation: var-expand.c:time_to_uint32_trunc Unexecuted instantiation: var-expand-if.c:time_to_uint32_trunc Unexecuted instantiation: wildcard-match.c:time_to_uint32_trunc Unexecuted instantiation: write-full.c:time_to_uint32_trunc Unexecuted instantiation: array.c:time_to_uint32_trunc Unexecuted instantiation: backtrace-string.c:time_to_uint32_trunc Unexecuted instantiation: base64.c:time_to_uint32_trunc Unexecuted instantiation: bits.c:time_to_uint32_trunc Unexecuted instantiation: env-util.c:time_to_uint32_trunc Unexecuted instantiation: event-filter.c:time_to_uint32_trunc Unexecuted instantiation: event-filter-lexer.c:time_to_uint32_trunc Unexecuted instantiation: event-filter-parser.c:time_to_uint32_trunc Unexecuted instantiation: hash.c:time_to_uint32_trunc Unexecuted instantiation: hash-method.c:time_to_uint32_trunc Unexecuted instantiation: hex-binary.c:time_to_uint32_trunc Unexecuted instantiation: ipwd.c:time_to_uint32_trunc Unexecuted instantiation: iostream.c:time_to_uint32_trunc Unexecuted instantiation: ioloop-iolist.c:time_to_uint32_trunc Unexecuted instantiation: ioloop-notify-fd.c:time_to_uint32_trunc Unexecuted instantiation: md4.c:time_to_uint32_trunc Unexecuted instantiation: md5.c:time_to_uint32_trunc Unexecuted instantiation: pkcs5.c:time_to_uint32_trunc Unexecuted instantiation: primes.c:time_to_uint32_trunc Unexecuted instantiation: sha1.c:time_to_uint32_trunc Unexecuted instantiation: sha2.c:time_to_uint32_trunc Unexecuted instantiation: sha3.c:time_to_uint32_trunc Unexecuted instantiation: str-parse.c:time_to_uint32_trunc Unexecuted instantiation: hmac.c:time_to_uint32_trunc |
154 | | #endif |