diff options
author | Florian Weimer <fweimer@redhat.com> | 2017-06-30 20:19:10 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2017-07-03 21:03:21 +0200 |
commit | a1c4eb8794e789b5055d7ceb13b2b3231abf5e26 (patch) | |
tree | 33fddb61bf0cb074a486dbe6155d0e36dd08ecaf /ChangeLog | |
parent | 3f853f22c87f0b671c0366eb290919719fa56c0e (diff) | |
download | glibc-a1c4eb8794e789b5055d7ceb13b2b3231abf5e26.zip glibc-a1c4eb8794e789b5055d7ceb13b2b3231abf5e26.tar.gz glibc-a1c4eb8794e789b5055d7ceb13b2b3231abf5e26.tar.bz2 |
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-- | ChangeLog | 36 |
1 files changed, 36 insertions, 0 deletions
@@ -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. |