|
1 | 1 | Changelog for the c-ares project. Generated with git2changes.pl
|
2 | 2 |
|
| 3 | +Version 1.28.1 (30 Mar 2024) |
| 4 | + |
| 5 | +GitHub (30 Mar 2024) |
| 6 | +- [Brad House brought this change] |
| 7 | + |
| 8 | + release prep for 1.28.1 (#739) |
| 9 | + |
| 10 | +Brad House (30 Mar 2024) |
| 11 | +- ares_search() and ares_getaddrinfo() resolution fails if no search domains |
| 12 | + |
| 13 | + Due to an error in creating the list of domains to search, if no search |
| 14 | + domains were configured, resolution would fail. |
| 15 | + |
| 16 | + Fixes Issue: #737 |
| 17 | + Fix By: Brad House (@bradh352) |
| 18 | + |
| 19 | +- typo |
| 20 | + |
| 21 | +Version 1.28.0 (28 Mar 2024) |
| 22 | + |
| 23 | +GitHub (28 Mar 2024) |
| 24 | +- [Brad House brought this change] |
| 25 | + |
| 26 | + Allow configuration value for NDots to be zero (#735) |
| 27 | + |
| 28 | + As per Issue #734 some people use `ndots:0` in their configuration which |
| 29 | + is allowed by the system resolver but not by c-ares. Add support for |
| 30 | + `ndots:0` and add a test case to validate this behavior. |
| 31 | + |
| 32 | + Fixes Issue: #734 |
| 33 | + Fix By: Brad House (@bradh352) |
| 34 | + |
| 35 | +Brad House (27 Mar 2024) |
| 36 | +- typo |
| 37 | + |
| 38 | +GitHub (27 Mar 2024) |
| 39 | +- [Brad House brought this change] |
| 40 | + |
| 41 | + 1.28.0 release prep (#733) |
| 42 | + |
| 43 | +Brad House (27 Mar 2024) |
| 44 | +- CMake: don't overwrite global required libraries/definitions/includes |
| 45 | + |
| 46 | + When chain building c-ares, global settings were being unset which |
| 47 | + could lead to build problems. |
| 48 | + |
| 49 | + Fixes Issue: #729 |
| 50 | + Fix By: Brad House (@bradh352) |
| 51 | + |
| 52 | +- remove tests that have been disabled forever |
| 53 | + |
| 54 | +- clang-format |
| 55 | + |
| 56 | +- ares_search_dnsrec() takes a const |
| 57 | + |
| 58 | +- sonarcloud: clean up some minor codesmells |
| 59 | + |
| 60 | +GitHub (26 Mar 2024) |
| 61 | +- [Brad House brought this change] |
| 62 | + |
| 63 | + mark deprecated functions as such (#732) |
| 64 | + |
| 65 | + Multiple functions have been deprecated over the years, annotate them |
| 66 | + with attribute deprecated. |
| 67 | + |
| 68 | + When possible show a message about their replacements. |
| 69 | + |
| 70 | + This is a continuation/completion of PR #706 |
| 71 | + |
| 72 | + Fix By: Cristian Rodríguez (@crrodriguez) |
| 73 | + |
| 74 | +Brad House (26 Mar 2024) |
| 75 | +- silence clang static analyzer |
| 76 | + |
| 77 | +- silence coverity |
| 78 | + |
| 79 | +- coverity: fix mostly bogus warnings |
| 80 | + |
| 81 | +- fix missing doc |
| 82 | + |
| 83 | +GitHub (25 Mar 2024) |
| 84 | +- [Brad House brought this change] |
| 85 | + |
| 86 | + Rework internals to pass around `ares_dns_record_t` instead of binary data (#730) |
| 87 | + |
| 88 | + c-ares has historically passed around raw dns packets in binary form. |
| 89 | + Now that we have a new parser, and messages are already parsed |
| 90 | + internally, lets pass around that parsed message rather than requiring |
| 91 | + multiple parse attempts on the same message. Also add a new |
| 92 | + `ares_send_dnsrec()` and `ares_query_dnsrec()` similar to |
| 93 | + `ares_search_dnsrec()` added with PR #719 that can return the pointer to |
| 94 | + the `ares_dns_record_t` to the caller enqueuing queries and rework |
| 95 | + `ares_search_dnsrec()` to use `ares_send_dnsrec()` internally. |
| 96 | + |
| 97 | + Fix By: Brad House (@bradh352) |
| 98 | + |
| 99 | +Brad House (23 Mar 2024) |
| 100 | +- tests: mockserver is local, shorten timeouts to make test cases run faster to use less CI resources |
| 101 | + |
| 102 | +- appveyor: disable UWP builds until MSVC version is updated in base image |
| 103 | + |
| 104 | +GitHub (21 Mar 2024) |
| 105 | +- [Faraz brought this change] |
| 106 | + |
| 107 | + Include netinet6/in6.h (#728) |
| 108 | + |
| 109 | + On some platforms, "netinet6/in6.h" is not included by "netinet/in.h" |
| 110 | + and needs to be included separately. |
| 111 | + |
| 112 | + Fix By: Faraz (@farazrbx) |
| 113 | + |
| 114 | +- [Oliver Welsh brought this change] |
| 115 | + |
| 116 | + Add function ares_search_dnrec() to search for records using the new DNS record parser (#719) |
| 117 | + |
| 118 | + This PR adds a new function `ares_search_dnsrec()` to search for records |
| 119 | + using the new DNS record parser. |
| 120 | + |
| 121 | + The function takes an arbitrary DNS record object to search (that must |
| 122 | + represent a query for a single name). The function takes a new callback |
| 123 | + type, `ares_callback_dnsrec`, that is invoked with a parsed DNS record |
| 124 | + object rather than the raw buffer(+length). |
| 125 | + |
| 126 | + The original motivation for this change is to provide support for |
| 127 | + [draft-kaplan-enum-sip-routing-04](https://datatracker.ietf.org/doc/html/draft-kaplan-enum-sip-routing-04); |
| 128 | + when routing phone calls using an ENUM server, it can be useful to |
| 129 | + include identifying source information in an OPT RR options value, to |
| 130 | + help select the appropriate route for the call. The new function allows |
| 131 | + for more customisable searches like this. |
| 132 | + |
| 133 | + **Summary of code changes** |
| 134 | + |
| 135 | + A new function `ares_search_dnsrec()` has been added and exposed. |
| 136 | + Moreover, the entire `ares_search_int()` internal code flow has been |
| 137 | + refactored to use parsed DNS record objects and the new DNS record |
| 138 | + parser. The DNS record object is passed through the `search_query` |
| 139 | + structure by encoding/decoding to/from a buffer (if multiple search |
| 140 | + domains are used). A helper function `ares_dns_write_query_altname()` is |
| 141 | + used to re-write the DNS record object with a new query name (used to |
| 142 | + append search domains). |
| 143 | + |
| 144 | + `ares_search()` is now a wrapper around the new internal code, where the |
| 145 | + DNS record object is created based on the name, class and type |
| 146 | + parameters. |
| 147 | + |
| 148 | + The new function uses a new callback type, `ares_callback_dnsrec`. This |
| 149 | + is invoked with a parsed DNS record object. For now, we convert from |
| 150 | + `ares_callback` to this new type using `ares__dnsrec_convert_cb()`. |
| 151 | + |
| 152 | + Some functions that are common to both `ares_query()` and |
| 153 | + `ares_search()` have been refactored using the new DNS record parser. |
| 154 | + See `ares_dns_record_create_query()` and |
| 155 | + `ares_dns_query_reply_tostatus()`. |
| 156 | + |
| 157 | + **Testing** |
| 158 | + |
| 159 | + A new FV has been added to test the new function, which searches for a |
| 160 | + DNS record containing an OPT RR with custom options value. |
| 161 | + |
| 162 | + As part of this, I needed to enhance the mock DNS server to expect |
| 163 | + request text (and assert that it matches actual request text). This is |
| 164 | + because the FV needs to check that the request contains the correct OPT |
| 165 | + RR. |
| 166 | + |
| 167 | + **Documentation** |
| 168 | + |
| 169 | + The man page docs have been updated to describe the new feature. |
| 170 | + |
| 171 | + **Futures** |
| 172 | + |
| 173 | + In the future, a new variant of `ares_send()` could be introduced in the |
| 174 | + same vein (`ares_send_dnsrec()`). This could be used by |
| 175 | + `ares_search_dnsrec()`. Moreover, we could migrate internal code to use |
| 176 | + `ares_callback_dnsrec` as the default callback. |
| 177 | + |
| 178 | + This will help to make the new DNS record parser the norm in C-Ares. |
| 179 | + |
| 180 | + --------- |
| 181 | + |
| 182 | + Co-authored-by: Oliver Welsh (@oliverwelsh) |
| 183 | + |
| 184 | +- [Brad House brought this change] |
| 185 | + |
| 186 | + Replace configuration file parsers with memory-safe parser (#725) |
| 187 | + |
| 188 | + Rewrite configuration parsers using new memory safe parsing functions. |
| 189 | + After CVE-2024-25629 its obvious that we need to prioritize again on |
| 190 | + getting all the hand written parsers with direct pointer manipulation |
| 191 | + replaced. They're just not safe and hard to audit. It was yet another |
| 192 | + example of 20+yr old code having a memory safety issue just now coming |
| 193 | + to light. |
| 194 | + |
| 195 | + Though these parsers are definitely less efficient, they're written with |
| 196 | + memory safety in mind, and any performance difference is going to be |
| 197 | + meaningless for something that only happens once a while. |
| 198 | + |
| 199 | + Fix By: Brad House (@bradh352) |
| 200 | + |
| 201 | +Brad House (12 Mar 2024) |
| 202 | +- skip ubsan/asan on debian arm64 due to the compiler getting killed |
| 203 | + |
| 204 | +- ares_init potential memory leak |
| 205 | + |
| 206 | + If initializing using default settings fails, there may be a memory leak of |
| 207 | + search domains that were set by system configuration. |
| 208 | + |
| 209 | + Fixes Issue: #724 |
| 210 | + Fix By: Brad House (@bradh352) |
| 211 | + |
| 212 | +GitHub (12 Mar 2024) |
| 213 | +- [Faraz Fallahi brought this change] |
| 214 | + |
| 215 | + simple implementation for isascii where stdlib isascii is not available (#721) |
| 216 | + |
| 217 | + Some platforms don't have the isascii() function. Implement as a macro. |
| 218 | + |
| 219 | + Fix By: Faraz Fallahi (@fffaraz) |
| 220 | + |
| 221 | +Brad House (11 Mar 2024) |
| 222 | +- Doxygen: fix typos |
| 223 | + |
| 224 | + Fix reported typos in doxygen-style comments. |
| 225 | + |
| 226 | + Fixes Issue: #722 |
| 227 | + Credit: @dzalyalov88 |
| 228 | + |
| 229 | +- CI: update freebsd image |
| 230 | + |
| 231 | +- CMake: Fix Chain building if CMAKE runtime paths not set |
| 232 | + |
| 233 | + This fixes issues created by #708 |
| 234 | + |
| 235 | + Fix By: Brad House (@bradh352) |
| 236 | + |
| 237 | +- silence benign warnings |
| 238 | + |
| 239 | +- Remove acountry completely from code, including manpage |
| 240 | + |
| 241 | + Since acountry cannot be restored due to nerd.dk being decommissioned, |
| 242 | + we should completely remove the manpage and source. This also |
| 243 | + will resolve issue #718. |
| 244 | + |
| 245 | + Fixes Issue: #718 |
| 246 | + Fix By: Brad House (@bradh352) |
| 247 | + |
3 | 248 | Version 1.27.0 (22 Feb 2024)
|
4 | 249 |
|
5 | 250 | GitHub (22 Feb 2024)
|
@@ -6100,127 +6345,3 @@ Yang Tse (10 Mar 2013)
|
6100 | 6345 |
|
6101 | 6346 | Daniel Stenberg (9 Mar 2013)
|
6102 | 6347 | - ares.h: there is no ares_free_soa function
|
6103 |
| - |
6104 |
| -Yang Tse (9 Mar 2013) |
6105 |
| -- Makefile.am: empty AM_LDFLAGS definition for automake 1.7 compatibility |
6106 |
| - |
6107 |
| -- ares_inet_ntop.3: s/socklen_t/ares_socklen_t |
6108 |
| - |
6109 |
| -- configure: use XC_LIBTOOL for portability across libtool versions |
6110 |
| - |
6111 |
| -- xc-lt-iface.m4: provide XC_LIBTOOL macro |
6112 |
| - |
6113 |
| -- Makefile.am: use AM_CPPFLAGS instead of INCLUDES |
6114 |
| - |
6115 |
| -- inet_ntop.c: s/socklen_t/ares_socklen_t |
6116 |
| - |
6117 |
| -- inet_ntop.c: s/socklen_t/ares_socklen_t for portability |
6118 |
| - |
6119 |
| -Daniel Stenberg (19 Feb 2013) |
6120 |
| -- ares.h: s/socklen_t/ares_socklen_t for portability |
6121 |
| - |
6122 |
| -- ares_inet_ntop.3: 4th argument is socklen_t! |
6123 |
| - |
6124 |
| -- spell inet correctly! |
6125 |
| - |
6126 |
| -- ares_inet_pton/ntop: cleanup |
6127 |
| - |
6128 |
| - Make sure that the symbols are always exported and present in c-ares. |
6129 |
| - |
6130 |
| - Make the headers prefixed with 'ares'. |
6131 |
| - |
6132 |
| - Removed the inet_ntop.h version as it no longer features any content. |
6133 |
| - |
6134 |
| -- ares_inet_ntop/ares_inet_pton: added man pages |
6135 |
| - |
6136 |
| -Yang Tse (15 Feb 2013) |
6137 |
| -- [Gisle Vanem brought this change] |
6138 |
| - |
6139 |
| - curl_setup_once.h: definition of HAVE_CLOSE_S defines sclose() to close_s() |
6140 |
| - |
6141 |
| -- [Gisle Vanem brought this change] |
6142 |
| - |
6143 |
| - config-dos.h: define HAVE_CLOSE_S for MSDOS/Watt-32 |
6144 |
| - |
6145 |
| -- [Gisle Vanem brought this change] |
6146 |
| - |
6147 |
| - config-dos.h: define strerror() to strerror_s_() for High-C |
6148 |
| - |
6149 |
| -Daniel Stenberg (13 Feb 2013) |
6150 |
| -- ares_get_datatype: removed unused function |
6151 |
| - |
6152 |
| - it was also wrongly named as internal functions require two underscores |
6153 |
| - |
6154 |
| -- ares__bitncmp: use two underscores for private functions |
6155 |
| - |
6156 |
| - It used a single one previously making it look like a public one |
6157 |
| - |
6158 |
| -- ares__generate_new_id: moved to ares_query.c |
6159 |
| - |
6160 |
| - ... and ares__rc4 is turned into a local static function. |
6161 |
| - |
6162 |
| -- ares__swap_lists: make private and static |
6163 |
| - |
6164 |
| - ... since there's only one user, make it static within ares_process.c |
6165 |
| - |
6166 |
| -Yang Tse (13 Feb 2013) |
6167 |
| -- Makefile.msvc: add four VS version strings |
6168 |
| - |
6169 |
| -Daniel Stenberg (13 Feb 2013) |
6170 |
| -- ares_expand_name.3: clarify how to free the data |
6171 |
| - |
6172 |
| -Yang Tse (30 Jan 2013) |
6173 |
| -- zz40-xc-ovr.m4: fix 'wc' detection - follow-up 2 |
6174 |
| - |
6175 |
| - - Fix a pair of single quotes to double quotes. |
6176 |
| - |
6177 |
| - URL: http://curl.haxx.se/mail/lib-2013-01/0355.html |
6178 |
| - Reported by: Tor Arntsen |
6179 |
| - |
6180 |
| -- zz40-xc-ovr.m4: fix 'wc' detection - follow-up |
6181 |
| - |
6182 |
| - - Take into account that 'wc' may return leading spaces and/or tabs. |
6183 |
| - |
6184 |
| - - Set initial IFS to space, tab and newline. |
6185 |
| - |
6186 |
| -- zz40-xc-ovr.m4: fix 'wc' detection |
6187 |
| - |
6188 |
| - - Take into account that 'wc' may return leading spaces. |
6189 |
| - |
6190 |
| - - Set internationalization behavior variables. |
6191 |
| - |
6192 |
| - Tor Arntsen analyzed and reported the issue. |
6193 |
| - |
6194 |
| - URL: http://curl.haxx.se/mail/lib-2013-01/0351.html |
6195 |
| - |
6196 |
| -- zz40-xc-ovr.m4: check another three basic utilities |
6197 |
| - |
6198 |
| -- zz40-xc-ovr.m4: 1.0 interface stabilization |
6199 |
| - |
6200 |
| - - Stabilization results in 4 public interface m4 macros: |
6201 |
| - XC_CONFIGURE_PREAMBLE |
6202 |
| - XC_CONFIGURE_PREAMBLE_VER_MAJOR |
6203 |
| - XC_CONFIGURE_PREAMBLE_VER_MINOR |
6204 |
| - XC_CHECK_PATH_SEPARATOR |
6205 |
| - - Avoid one level of internal indirection |
6206 |
| - - Update comments |
6207 |
| - - Drop XC_OVR_ZZ40 macro |
6208 |
| - |
6209 |
| -- zz40-xc-ovr.m4: emit witness message in configure BODY |
6210 |
| - |
6211 |
| - This avoids witness message in output when running configure --help, |
6212 |
| - while sending the message to config.log for other configure runs. |
6213 |
| - |
6214 |
| -- zz40-xc-ovr.m4: truly do version conditional overriding |
6215 |
| - |
6216 |
| - - version conditional overriding |
6217 |
| - - catch unexpanded XC macros |
6218 |
| - - fix double words in comments |
6219 |
| - |
6220 |
| -- zz40-xc-ovr.m4: fix variable assignment of subshell output bashism |
6221 |
| - |
6222 |
| - Tor Arntsen analyzed and reported the issue. |
6223 |
| - |
6224 |
| - URL: http://curl.haxx.se/mail/lib-2013-01/0306.html |
6225 |
| - |
6226 |
| -- zz40-xc-ovr.m4: reinstate strict AC_REQUIRE macro dependencies |
|
0 commit comments