about summary refs log tree commit diff
path: root/resolv/resolv_conf.c
Commit message (Collapse)AuthorAgeFilesLines
* libc: Extend __libc_freeres framework (Bug 23329).Carlos O'Donell2018-06-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | The __libc_freeres framework does not extend to non-libc.so objects. This causes problems in general for valgrind and mtrace detecting unfreed objects in both libdl.so and libpthread.so. This change is a pre-requisite to properly moving the malloc hooks out of malloc since such a move now requires precise accounting of all allocated data before destructors are run. This commit adds a proper hook in libc.so.6 for both libdl.so and for libpthread.so, this ensures that shm-directory.c which uses freeit () to free memory is called properly. We also remove the nptl_freeres hook and fall back to using weak-ref-and-check idiom for a loaded libpthread.so, thus making this process similar for all DSOs. Lastly we follow best practice and use explicit free calls for both libdl.so and libpthread.so instead of the generic hook process which has undefined order. Tested on x86_64 with no regressions. Signed-off-by: DJ Delorie <dj@redhat.com> Signed-off-by: Carlos O'Donell <carlos@redhat.com>
* Run thread shutdown functions in an explicit orderFlorian Weimer2018-06-261-3/+1
| | | | | | | This removes the __libc_thread_subfreeres hook in favor of explict calls. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* Update copyright dates with scripts/update-copyrights.Joseph Myers2018-01-011-1/+1
| | | | | | | * All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise.
* resolv: __resolv_conf_attach must not free passed conf object [BZ #22096]Florian Weimer2017-09-061-4/+1
|
* resolv: Fix resolv_conf _res matchingFlorian Weimer2017-07-041-3/+21
| | | | | | | | A dot-less host name without an /etc/resolv.conf file caused an assertion failure in update_from_conf because the function would not deal correctly with the empty search list case. Thanks to Andreas Schwab for debugging assistence.
* resolv: Fix improper assert in __resolv_conf_attachFlorian Weimer2017-07-041-8/+7
|
* resolv: Introduce free list for resolv_conf index slostsFlorian Weimer2017-07-031-31/+40
|
* resolv: Automatically reload a changed /etc/resolv.conf file [BZ #984]Florian Weimer2017-07-031-1/+85
| | | | | | | | | | This commit enhances the stub resolver to reload the configuration in the per-thread _res object if the /etc/resolv.conf file has changed. The resolver checks whether the application has modified _res and will not overwrite the _res object in that case. The struct resolv_context mechanism is used to check the configuration file only once per name lookup.
* resolv: Mirror the entire resolver configuration in struct resolv_confFlorian Weimer2017-07-031-7/+216
| | | | | | | | | | | | | | 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.)
* resolv: Lift domain search list limits [BZ #19569] [BZ #21475]Florian Weimer2017-07-031-1/+64
| | | | | | | This change uses the extended resolver state in struct resolv_conf to store the search list. If applications have not patched the _res object directly, this extended search list will be used by the stub resolver during name resolution.
* resolv: Introduce struct resolv_conf with extended resolver stateFlorian Weimer2017-07-031-0/+322
This change provides additional resolver configuration state which is not exposed through the _res ABI. It reuses the existing initstamp field in the supposedly-private part of _res. Some effort is undertaken to avoid memory safety issues introduced by applications which directly patch the _res object. With this commit, only the initstamp field is moved into struct resolv_conf. Additional members will be added later, eventually migrating the entire resolver configuration.