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