diff options
author | Florian Weimer <fweimer@redhat.com> | 2017-07-03 21:06:23 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2017-07-03 21:06:23 +0200 |
commit | aef16cc8a4c670036d45590877d411a97f01e0cd (patch) | |
tree | 4403f1962170ce92087a6e1af62dbb92e15d27f6 /resolv/res_libc.c | |
parent | a1c4eb8794e789b5055d7ceb13b2b3231abf5e26 (diff) | |
download | glibc-aef16cc8a4c670036d45590877d411a97f01e0cd.tar.gz glibc-aef16cc8a4c670036d45590877d411a97f01e0cd.tar.xz glibc-aef16cc8a4c670036d45590877d411a97f01e0cd.zip |
resolv: Automatically reload a changed /etc/resolv.conf file [BZ #984]
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.
Diffstat (limited to 'resolv/res_libc.c')
-rw-r--r-- | resolv/res_libc.c | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/resolv/res_libc.c b/resolv/res_libc.c index 5066983ccf..9f2d3c3bd4 100644 --- a/resolv/res_libc.c +++ b/resolv/res_libc.c @@ -42,18 +42,6 @@ #include <libc-lock.h> #include <resolv-internal.h> -/* We have atomic increment operations on 64-bit platforms. */ -#if __WORDSIZE == 64 -# define atomicinclock(lock) (void) 0 -# define atomicincunlock(lock) (void) 0 -# define atomicinc(var) catomic_increment (&(var)) -#else -__libc_lock_define_initialized (static, lock); -# define atomicinclock(lock) __libc_lock_lock (lock) -# define atomicincunlock(lock) __libc_lock_unlock (lock) -# define atomicinc(var) ++var -#endif - int res_init (void) { @@ -90,12 +78,6 @@ res_init (void) if (!_res.id) _res.id = res_randomid (); - atomicinclock (lock); - /* Request all threads to re-initialize their resolver states, - resolv.conf might have changed. */ - atomicinc (__res_initstamp); - atomicincunlock (lock); - return __res_vinit (&_res, 1); } |