about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-06-30 20:19:10 +0200
committerFlorian Weimer <fweimer@redhat.com>2017-07-03 21:03:21 +0200
commita1c4eb8794e789b5055d7ceb13b2b3231abf5e26 (patch)
tree33fddb61bf0cb074a486dbe6155d0e36dd08ecaf /ChangeLog
parent3f853f22c87f0b671c0366eb290919719fa56c0e (diff)
downloadglibc-a1c4eb8794e789b5055d7ceb13b2b3231abf5e26.tar.gz
glibc-a1c4eb8794e789b5055d7ceb13b2b3231abf5e26.tar.xz
glibc-a1c4eb8794e789b5055d7ceb13b2b3231abf5e26.zip
resolv: Mirror the entire resolver configuration in struct resolv_conf
This commit adds the remaining unchanging members (which are loaded
from /etc/resolv.conf) to struct resolv_conf.

The extended name server list is currently not used by the stub
resolver.  The switch depends on a cleanup: The _u._ext.nssocks
array stores just a single socket, and needs to be replaced with
a single socket value.

(The compatibility gethostname implementation does not use the
extended addres sort list, either.  Updating the compat code is
not worthwhile.)
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog36
1 files changed, 36 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 006112603a..6478aed5ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,41 @@
 2017-06-30  Florian Weimer  <fweimer@redhat.com>
 
+	Mirror the entire resolver configuration in struct resolv_conf.
+	* resolv/resolv_context.h (__resolv_context_nameserver_count)
+	(__resolv_context_nameserver): New functions.
+	(__resolv_context_sort_count, __resolv_context_sort_entry):
+	Likewise.
+	* resolv/nss_dns/dns-host.c (getanswer_r): Add struct
+	resolv_context parameter.
+	(gethostbyname3_context, _nss_dns_gethostbyaddr2_r): Adjust.
+	(addrsort): Switch to struct resolv_context.
+	* resolv/resolv_conf.h (struct resolv_sortlist_entry): Define.
+	(struct resolv_conf): Add nameserver_list, nameserver_list_size,
+	sort_list, sort_list_size, options, retrans, retry, ndots members.
+	* resolv/resolv_conf.c (same_address_v4, same_address_v6)
+	(same_address): New functions.
+	(resolv_conf_matches): Compare the new array members.
+	(__resolv_conf_allocate): Allocate and copy the new array members.
+	(update_from_conf): Copy the entire configuration.
+	* resolv/res_init.c (struct nameserver_list, struct sort_list):
+	Define using dynarray.
+	(struct resolv_conf_parser): Add nameserver_list, sort_list,
+	template members.
+	(resolv_conf_parser_init): Add preinit argument.  Initialize the
+	new members.
+	(resolv_conf_parser_free): Deallocate the new arrays.
+	(allocate_address_v4): New function.
+	(res_setoptions): Switch to struct resolv_conf_parser * parameter.
+	(res_vinit_1): Drop res_state parameter.  Write all parsed date to
+	the parser object instead.  Use allocate_address_v4 to allocate
+	IPv4 addresses.
+	(__res_vinit): Adjust.
+	* resolv/tst-resolv-res_init-skeleton.c (print_resp): Print the
+	extended name server list.
+	(test_cases): Adjust.
+
+2017-06-30  Florian Weimer  <fweimer@redhat.com>
+
 	[BZ #19569]
 	[BZ #21475]
 	Support an arbitrary number of search domains.