11 Changelog for the c-ares project. Generated with git2changes.pl
22
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+
3248Version 1.27.0 (22 Feb 2024)
4249
5250GitHub (22 Feb 2024)
@@ -6100,127 +6345,3 @@ Yang Tse (10 Mar 2013)
61006345
61016346Daniel Stenberg (9 Mar 2013)
61026347- 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