clfs-1.2clfs-2.1clfs-3.0.0-systemdclfs-3.0.0-sysvinitsystemdsysvinit
Last change
on this file since b17b911f was
b17b911f,
checked in by jim <clfs@…>, 15 years ago
|
Updated eglibc fetch script.
|
-
Property mode set to
100644
|
File size:
967 bytes
|
Rev | Line | |
---|
[b17b911f] | 1 | if /etc/resolv.conf is updated, then make sure applications |
---|
| 2 | already running get the updated information. |
---|
| 3 | |
---|
| 4 | http://bugs.gentoo.org/177416 |
---|
| 5 | |
---|
| 6 | --- libc/resolv/res_libc.c |
---|
| 7 | +++ libc/resolv/res_libc.c |
---|
| 8 | @@ -22,6 +22,7 @@ |
---|
| 9 | #include <arpa/nameser.h> |
---|
| 10 | #include <resolv.h> |
---|
| 11 | #include <bits/libc-lock.h> |
---|
| 12 | +#include <sys/stat.h> |
---|
| 13 | |
---|
| 14 | |
---|
| 15 | /* The following bit is copied from res_data.c (where it is #ifdef'ed |
---|
| 16 | @@ -101,6 +102,20 @@ |
---|
| 17 | __res_maybe_init (res_state resp, int preinit) |
---|
| 18 | { |
---|
| 19 | if (resp->options & RES_INIT) { |
---|
| 20 | + static time_t last_mtime, last_check; |
---|
| 21 | + time_t now; |
---|
| 22 | + struct stat statbuf; |
---|
| 23 | + |
---|
| 24 | + time (&now); |
---|
| 25 | + if (now != last_check) { |
---|
| 26 | + last_check = now; |
---|
| 27 | + if (stat (_PATH_RESCONF, &statbuf) == 0 && last_mtime != statbuf.st_mtime) { |
---|
| 28 | + last_mtime = statbuf.st_mtime; |
---|
| 29 | + atomicinclock (lock); |
---|
| 30 | + atomicinc (__res_initstamp); |
---|
| 31 | + atomicincunlock (lock); |
---|
| 32 | + } |
---|
| 33 | + } |
---|
| 34 | if (__res_initstamp != resp->_u._ext.initstamp) { |
---|
| 35 | if (resp->nscount > 0) { |
---|
| 36 | __res_nclose (resp); |
---|
| 37 | |
---|
Note: See
TracBrowser
for help on using the repository browser.