aboutsummaryrefslogtreecommitdiff
path: root/resolv
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-06-27 09:26:46 +0200
committerFlorian Weimer <fweimer@redhat.com>2017-06-27 09:26:46 +0200
commite6b4e2de6dd91efdcac80b79149c596de8a26b70 (patch)
tree4ac5b1cb2d8b5df219fa0b0be3290534cbccd0e7 /resolv
parentAdd float128 support for ia64. (diff)
downloadglibc-e6b4e2de6dd91efdcac80b79149c596de8a26b70.tar.gz
glibc-e6b4e2de6dd91efdcac80b79149c596de8a26b70.tar.bz2
glibc-e6b4e2de6dd91efdcac80b79149c596de8a26b70.zip
resolv: Call _res_hconf_init from __res_vinit
Many callers of __res_maybe_init also call _res_hconf_init. Additional calls to the latter do not hurt because the function does its work only once. (/etc/hosts.conf is not reloaded or even checked for changes.) This means that we can simplify the code by calling _res_hconf_init directly from __res_vinit.
Diffstat (limited to 'resolv')
-rw-r--r--resolv/res_hconf.h2
-rw-r--r--resolv/res_init.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/resolv/res_hconf.h b/resolv/res_hconf.h
index 6eaf4039f3..209f76a0d6 100644
--- a/resolv/res_hconf.h
+++ b/resolv/res_hconf.h
@@ -46,7 +46,7 @@ struct hconf
};
extern struct hconf _res_hconf;
-extern void _res_hconf_init (void);
+extern void _res_hconf_init (void) attribute_hidden;
extern void _res_hconf_trim_domain (char *domain);
extern void _res_hconf_trim_domains (struct hostent *hp);
extern void _res_hconf_reorder_addrs (struct hostent *hp);
diff --git a/resolv/res_init.c b/resolv/res_init.c
index 9aa907ee19..821f06061b 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -85,6 +85,7 @@
#include <ctype.h>
#include <netdb.h>
#include <resolv/resolv-internal.h>
+#include <res_hconf.h>
#include <stdio.h>
#include <stdio_ext.h>
#include <stdlib.h>
@@ -430,6 +431,9 @@ res_vinit_1 (res_state statp, bool preinit, FILE *fp, char **buffer)
int
__res_vinit (res_state statp, int preinit)
{
+ /* Ensure that /etc/hosts.conf has been loaded (once). */
+ _res_hconf_init ();
+
FILE *fp = fopen (_PATH_RESCONF, "rce");
if (fp == NULL)
switch (errno)