diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-07-11 09:19:25 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-07-11 09:19:25 +0000 |
commit | 9d957ce2a2cfefb4580e37b744b581381604106f (patch) | |
tree | 98eb1e29cdeb706c016dc0b320d82f04ec789c71 /resolv/res_hconf.c | |
parent | cb2a71bbe44c4d274a7520c3e9c9e885dce1d426 (diff) | |
download | glibc-9d957ce2a2cfefb4580e37b744b581381604106f.tar.gz glibc-9d957ce2a2cfefb4580e37b744b581381604106f.tar.xz glibc-9d957ce2a2cfefb4580e37b744b581381604106f.zip |
Update.
* resolv/res_hconf.c (_res_hconf_init): Move code into new function do_init. Use __libc_once. (do_init): New function.
Diffstat (limited to 'resolv/res_hconf.c')
-rw-r--r-- | resolv/res_hconf.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/resolv/res_hconf.c b/resolv/res_hconf.c index b8137990ff..e6faa6855e 100644 --- a/resolv/res_hconf.c +++ b/resolv/res_hconf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993,95,96,97,98,99,2000,2001 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995-2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Mosberger (davidm@azstarnet.com). @@ -411,19 +411,14 @@ parse_line (const char *fname, int line_num, const char *str) } -/* Initialize hconf datastructure by reading host.conf file and - environment variables. */ -void -_res_hconf_init (void) +static void +do_init (void) { const char *hconf_name; int line_num = 0; char buf[256], *envval; FILE *fp; - if (_res_hconf.initialized) - return; - memset (&_res_hconf, '\0', sizeof (_res_hconf)); hconf_name = getenv (ENV_HOSTCONF); @@ -482,6 +477,17 @@ _res_hconf_init (void) } +/* Initialize hconf datastructure by reading host.conf file and + environment variables. */ +void +_res_hconf_init (void) +{ + __libc_once_define (static, once); + + __libc_once (once, do_init); +} + + /* List of known interfaces. */ static struct netaddr { |