rpms/glibc/devel glibc-fedora.patch,1.275,1.276
Jakub Jelinek (jakub)
fedora-extras-commits at redhat.com
Fri Jun 13 17:17:58 UTC 2008
Author: jakub
Update of /cvs/pkgs/rpms/glibc/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv5132
Modified Files:
glibc-fedora.patch
Log Message:
2.8.90-7
glibc-fedora.patch:
Index: glibc-fedora.patch
===================================================================
RCS file: /cvs/pkgs/rpms/glibc/devel/glibc-fedora.patch,v
retrieving revision 1.275
retrieving revision 1.276
diff -u -r1.275 -r1.276
--- glibc-fedora.patch 13 Jun 2008 17:15:01 -0000 1.275
+++ glibc-fedora.patch 13 Jun 2008 17:17:16 -0000 1.276
@@ -2315,3 +2315,79 @@
cfi_startproc;
PSEUDO_END (BP_SYM (__clone))
+--- libc/nscd/connections.c 12 Jun 2008 22:39:35 -0000 1.113
++++ libc/nscd/connections.c 13 Jun 2008 16:30:09 -0000 1.114
+@@ -51,6 +51,7 @@
+ #include "nscd.h"
+ #include "dbg_log.h"
+ #include "selinux.h"
++#include <resolv/resolv.h>
+ #ifdef HAVE_SENDFILE
+ # include <kernel-features.h>
+ #endif
+@@ -228,6 +229,9 @@ static int sock;
+ #ifdef HAVE_INOTIFY
+ /* Inotify descriptor. */
+ static int inotify_fd = -1;
++
++/* Watch descriptor for resolver configuration file. */
++static int resolv_conf_descr = -1;
+ #endif
+
+ /* Number of times clients had to wait. */
+@@ -824,7 +828,7 @@ cannot set socket to close on exec: %s;
+ if (dbs[cnt].check_file)
+ {
+ #ifdef HAVE_INOTIFY
+- if (inotify_fd == -1
++ if (inotify_fd < 0
+ || (dbs[cnt].inotify_descr
+ = inotify_add_watch (inotify_fd, dbs[cnt].filename,
+ IN_DELETE_SELF | IN_MODIFY)) < 0)
+@@ -845,6 +849,14 @@ cannot set socket to close on exec: %s;
+ dbs[cnt].file_mtime = st.st_mtime;
+ }
+ }
++
++#ifdef HAVE_INOTIFY
++ if (cnt == hstdb && inotify_fd >= -1)
++ /* We also monitor the resolver configuration file. */
++ resolv_conf_descr = inotify_add_watch (inotify_fd,
++ _PATH_RESCONF,
++ IN_DELETE_SELF | IN_MODIFY);
++#endif
+ }
+
+ /* Create the socket. */
+@@ -1798,6 +1810,7 @@ main_loop_poll (void)
+ {
+ if (conns[1].revents != 0)
+ {
++ bool done[lastdb] = { false, };
+ union
+ {
+ struct inotify_event i;
+@@ -1810,12 +1823,21 @@ main_loop_poll (void)
+ {
+ /* Check which of the files changed. */
+ for (size_t dbcnt = 0; dbcnt < lastdb; ++dbcnt)
+- if (inev.i.wd == dbs[dbcnt].inotify_descr)
++ if (!done[dbcnt]
++ && (inev.i.wd == dbs[dbcnt].inotify_descr
++ || (dbcnt == hstdb
++ && inev.i.wd == resolv_conf_descr)))
+ {
+- pthread_mutex_trylock (&dbs[dbcnt].prune_lock);
++ if (dbcnt == hstdb
++ && inev.i.wd == resolv_conf_descr)
++ res_init ();
++
++ pthread_mutex_lock (&dbs[dbcnt].prune_lock);
+ dbs[dbcnt].clear_cache = 1;
+ pthread_mutex_unlock (&dbs[dbcnt].prune_lock);
+ pthread_cond_signal (&dbs[dbcnt].prune_cond);
++
++ done[dbcnt] = true;
+ break;
+ }
+ }
More information about the fedora-extras-commits
mailing list