c-ares version 1.21.0 This is a bugfix and cleanup release with some significant internal changes. Changes: o Provide better man page cross-links. [1] o Introduce ares_status_t as an enum rather than using #define list and integer data type for internal functions. [2] o Introduce ares_bool_t datatype rather than using an integer with 0/1 so it is clear based on the function prototype what it returns. [5] o Increase compiler warning levels by default. [6] o Use size_t and other more proper datatypes internally (rather than int). [7] o Many developers have used different code styles over the years, standardize on one and use clang-format to enforce the style. [8] o CMake can now control symbol visibility [9] o Replace multiple DNS hand-made parsers with new memory-safe DNS message parser. [10] Bug Fixes: o Tools: STAYOPEN flag could make tools not terminate. [3] o Socket callbacks were passed SOCK_STREAM instead of SOCK_DGRAM on udp. [4] Thanks go to these friendly people for their efforts and contributions: Brad House (@bradh352) Daniel Stenberg (@bagder) Gregor Jasny (@gjasny) (3 contributors) References to bug reports and discussions on issues: [1] = https://github.com/c-ares/c-ares/pull/565 [2] = https://github.com/c-ares/c-ares/pull/567 [3] = https://github.com/c-ares/c-ares/pull/569 [4] = https://github.com/c-ares/c-ares/commit/a070d78 [5] = https://github.com/c-ares/c-ares/pull/570 [6] = https://github.com/c-ares/c-ares/pull/568 [7] = https://github.com/c-ares/c-ares/pull/573 [8] = https://github.com/c-ares/c-ares/pull/579 [9] = https://github.com/c-ares/c-ares/pull/574 [10] = https://github.com/c-ares/c-ares/pull/581