|
1 | 1 | Changelog for the c-ares project. Generated with git2changes.pl
|
2 | 2 |
|
| 3 | +Version 1.28.1 (30 Mar 2024) |
| 4 | + |
| 5 | +(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 | +(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 | +(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 | +(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 | +(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 | +(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 |
| 205 | + |
| 206 | +If initializing using default settings fails, there may be a memory of |
| 207 | +search domains that were set by system configuration. |
| 208 | + |
| 209 | +Fixes Issue: #724 |
| 210 | +Fix By: Brad House (@bradh352) |
| 211 | + |
| 212 | +(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 | (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