main
lib: Move Unicode Character Database (UCD) files to ./ucd
lib: unicode-data - Add data for IDNA code point context rules
lib: Add RFC 5234 abnf definitions
COPYING: Simplify and standardize copyright handling
Added more consts, ATTR_CONSTs and ATTR_PUREs.
lib: Add ARRAY_TYPE(bool)
lib: array - Use MALLOC_MULTIPLY() for index arithmetic
Moved askpass() from master/ to lib/. Added t_askpass().
lib: backtrace_get/append() - Add error_r parameter
Added support for base32 encode/decode.
lib: Remove deprecated src_pos_r parameter from base64_decode()
global: Complete unsigned int declarations
global: Change CALLBACK_TYPECHECK() to used with subtraction
lib: buffer - Add buffer_{write,append,insert}_array() helpers
lib: Add NOLINT clang-tidy directives for some helpers
lib: Add struct connection.local_port
Add missing copyright headers
lib: Add cpu-count.{h,c} to get number of CPUs in system
lib: cpu-limit - Redesign the API
lib: crc32 - Use zlib's built-in CRC32 function
global: Update documentation links in source code
Marked functions parameters that are allowed to be NULL. Some APIs were also changed. The non-obvious APIs where NULL parameter was changed to "" are master_service_init() and auth_master_user_list_init().
lib: env_put() - Use setenv() instead of putenv()
lib: Add event_filter_register_cmp()
lib, lib-master: Replace event_[un]set_global_debug_send_filter() with event_global_debug_send_filter_register()
Added execv_const() and execvp_const() helper functions.
lib: Remove unused failure_handler_vfuncs.post_handler()
lib: Add i_failure_have_stdout_logs()
lib: don't use foo_real()-style symbols in a header file
Moved fdatasync_path() to a global function.
lib: Updated fdpass.h comments.
lib: Add file_cache_new_path() to include path in error messages.
Changed .h ifdef/defines to use <NAME>_H format.
lib: file-lock - Rework API to make it extensible.
global: unsigned int:1 -> bool:1
lib: struct file_lock_settings - Swap inverted comments
Added file_preallocate() to preallocate space to a file without changing its size. Implemented for Linux. Doesn't look like other OSes support this.
Renamed fsync_disable to mail_fsync=optimized|always|never.
lib: guid - Add guid_uuid4_generate()
Reverted the recent hash.h changes. Instead use -Wno-duplicate-decl-specifier with clang. The modified version required hash table users to know the structs' contents, which isn't otherwise necessary.
global: Fix code comment spelling
lib: hash-method - Add generic incremental API for hash methods.
global: Add NOLINT for noisy macros
lib: hash2 - Add string key helpers
Added binary_to_hex_append().
lib: Add hex2dec_case()
Make sure we don't shift signed integers left by 24. They should be unsigned.
lib: Generalize hmac to be hash independent
global: Make sure memcpy() isn't called with NULL parameters
Master looks up system hostdomain now and sends it to child processes via environment. This avoids doing a gethostbyname() lookup at startup for each process that needs it.
lib: idna-punycode - Remove idna_punycode_decode_utf8()
lib: idna - Implement code point context rules
lib: Added i_memdup().
Renamed lib/*-internal.h files to lib/*-private.h for consistency.
lib: ioloop-kqueue - Fix memory leak when ioloop stops before all IO callbacks are called
lib: ioloop-kqueue - Include time-util.h
lib: event_pop_global() - Assert-crash if trying to pop ioloop context's global root event
lib: ioloop - Don't call pending IOs after the ioloop was stopped
lib: Clarify io_loop_stop_delayed() comment
lib: iostream-multiplex - Implement streaming format
lib: iostream: Record the ioloop that the iostream was last switched to.
lib: iostream-rawlog - Flush final buffered data when the stream doesn't end with LF
lib, global: iostream_rawlog_create*() - Add event and setting name parameters
lib: iostream-temp - Optimize writing many small writes
lib: Add functions to reliably autoclose fd for i/ostream-file
Added i_getpw*() and i_getgr*() wrappers for getpw*()/getgr*(). These functions make error handling easier.
Adds ISO8601/RFC3339 date format parsing and construction support.
lib: istream - Make istreams declare the istreams they read
lib: istream-base64 - Add support for base64url encoding.
istream-callback: Added i_stream_callback_get_buffer().
lib, global: i_stream_create_chain() - Add max_buffer_size
Added concatenation input stream.
Added input stream filters for reading linefeeds as CRLFs or LFs.
lib: istream-failure-at: Allow setting the the stream_errno to something other than EIO.
liblib: Added istream-hash, similar to ostream-hash.
lib: Add multiplex stream support
lib: Move istream-nonuls from lib-mail to lib.
lib: [io]stream-rawlog.h should auto-include iostream-rawlog.h
Added i_stream_create_seekable_path()
Added tee_i_stream_child_is_waiting().
Added istream-timeout, which triggers I/O event and fails with ETIMEDOUT after the timeout.
lib: istream-try - Fix detecting istream when its input buffer is full
lib: Added istream-unix for reading fd sockets via istream.
lib: istream - Panic when a pending can't reach the reading istream's IO
lib-event: Add event_register_callback_prepend()
global: Fix spelling
lib: lib-signals - Add lib_signals_set_handler2() to set both immediate/delayed handlers
lib: Silencing warnings for 'memcpy' macro redefined on macOS
lib: Add DLLIST2_JOIN()
configure: Remove --disable-asserts option
global: Replace open-coded allocation size arithmetic with overflow-safe helpers
lib: md4 - Fix violation of strict aliasing.
[LEN] to [static LEN] on some function parameters
lib: md5: Fix strict aliasing violation
lib: mkdir-parents - Add mkdir_get_executable_mode()
lib/mmap-util: Drop manual redefinition of madvise()
lib: Fix MODULE_CONTEXT_REQUIRE() to always panic if context is unset
lib, global: module_dir_*load*() - Change module_names to be an array of strings
Added mountpoint_iter_*() for iterating mounted filesystems.
lib, global: Change net_accept() to return only -1 on failure
Make sure we check all the functions' return values. Minor API changes to simplify this. Checked using a patched clang that adds attribute(warn_unused_result) to all functions. This commit fixes several error handling mistakes.
lib: Added numpack_decode32()
lib: Added o_stream_create_failure_at() to inject EIO at given offset in ostream
lib: ostream-file - Avoid memcpy(NULL) assert with max_buffer_size=0
Minor code cleanup.
lib: ostream-multiplex - Fix panic when destroying corked channel 0 after parent failed
lib: ostream-multiplex - Mark the PACKET format deprecated
lib: Added ostream-null
lib, lib-ssl-iostream: Split off o_stream_init_buffering_flush()
lib: Added ostream-unix for writing fd sockets via ostream.
lib, lib-master: Add error_r to t_binary_abspath
global: Use t_buffer_create
global: Change string position/length from unsigned int to size_t
Added priorityq_items() for getting all items from a priority queue.
lib: Add functionality for acquiring process stat.
lib: Add process_title_get_counter()
lib-test: fuzzer - Make random number generator deterministic when fuzzer is active
global: Remove stray whitespaces
Added restrict_get_process_size()
lib: safe-mkstemp - Add safe_mkstemp_dir*()
lib: safe_sendfile() - clarify return value 0 handling
lib: seq-range-array - Assert-crash if array becomes 0..(uint32_t)-1
lib: Reformat seq-set-builder.h
lib: hash-method - Add sha384 support
lib: hash-method - Add block size
spelling fixes
global: Add ATTR_UNSIGNED_WRAPS to fix various ubsan issues
lib: Add SHA3 hashing methods for 256 and 512 bits
lib: Implement reliable sleep functions i_sleep*_usecs(), i_sleep*_msecs(), and i_sleep*_secs().
lib: sort - Rename bsearch_(case)strcmp() into search_(case)strcmp()
lib: stats_dist_get_median(), stats_dist_get_percentile() - Remove const parameter
Added str_find_get_match_end_pos(). Added unit testing.
lib: Implement str_sanitize_utf8().
lib: Added str-table API for keeping reference counted strings in a hash table.
lib: Add str_append_escaped and use it with str_escape
lib: Add i_memrchr() helper
lib: strnum - Add str_parse_data_uintmax()
lib: rename bswap_*() to i_bswap()
lib: test-idna-punycode - Use idna_punycode_decode() directly
lib: test-iostream-pump - Fix duplicated test name
lib: test-istream-chain - Free the fatal test's istreams and ioloop
lib: test-lib-signals - Fix flakiness on stalled machines
lib: test-file-create-locked - Use the new test-subprocess API
lib: test-ostream-multiplex - Add STREAM format backpressure and buffering tests
lib: Add time_add_secs()/time_sub_secs() overflow-safe helpers
lib/uri-util: Fix out-of-bounds reads on unterminated buffers
global: Drop TIME_T_SIGNED define
lib: UNICODE_*_CHAR_UTF8_LEN - Remove extra ; from macros
lib: unicode - Implement text segmentation at grapheme cluster boundaries
lib: unicode-data - Add Bidi data needed for IDNA Bidi rules
lib: unicode-transform - Implement case mapping
lib: unlink_directory() return value is changed to 1 in case of no error.
unlink_old_files(): Update atime before scan, not after. If Maildir/dbox scanning takes long this makes sure that a lot of processes won't be scanning it in parallel.
lib: Accept leap second in utc_mktime
lib, lib-master: Move version_*() to lib/version.[ch]
lib: Add wildcard_match_escaped*()