aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-07-11 14:50:24 -0400
committerUlrich Drepper <drepper@gmail.com>2011-07-11 14:50:24 -0400
commit319b9ad4bccedb2a6b1a222cf446e873b2bc6de1 (patch)
tree7951727c0dbd4394af52715e226745986e8beeb4 /ChangeLog
parent23bee3e8677c9357662ce789ed77fe25f3991c66 (diff)
downloadglibc-319b9ad4bccedb2a6b1a222cf446e873b2bc6de1.tar
glibc-319b9ad4bccedb2a6b1a222cf446e873b2bc6de1.tar.gz
glibc-319b9ad4bccedb2a6b1a222cf446e873b2bc6de1.tar.bz2
glibc-319b9ad4bccedb2a6b1a222cf446e873b2bc6de1.zip
Generalize framework to register monitoring of files in nscd
nscd can clear caches when certain files change. The list of files was hardcoded so far and worked for nss_files and nss_dns and those modules which need no monitoring. nss_db, for instance, has its own set of files to monitor. Now the NSS modules themselves can request that certain files are monitored.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog42
1 files changed, 42 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 953e879f89..31902a0a3f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,45 @@
+2011-07-11 Ulrich Drepper <drepper@gmail.com>
+
+ * nscd/nscd.h (struct traced_file): Define.
+ (struct database_dyn): Remove inotify_descr, reset_res, and filename
+ elements. Add traced_files.
+ (inotify_fd): Declare.
+ (register_traced_file): Declare.
+ * nscd/connections.c (dbs): Remove reset_res and filename initializers.
+ (inotify_fd): Export.
+ (resolv_conf_descr): Remove.
+ (nscd_init): Move inotify descriptor creation to main.
+ Don't register files for notification here.
+ (register_traced_file): New function.
+ (invalidate_cache): Don't use reset_res to determine whether to call
+ res_init, go through the list of registered files.
+ (main_loop_poll): The inotify descriptors are now stored in the
+ structures for the traced files.
+ (main_loop_epoll): Likewise
+ * nscd/nscd.c (main): Create inotify socket here. Pass extra argument
+ to __nss_disable_nscd.
+ * nscd/cache.c (prune_cache): There is no single inotify descriptor
+ for a database anymore. Check the records for all the registered
+ files instead.
+ * nss/Makefile (libnss_files-routines): Add files-init.
+ (libnss_db-routines): Add db-init.
+ * nss/Versions [libnss_files] (GLIBC_PRIVATE): Add _nss_files_init.
+ [libnss_db] (GLIBC_PRIVATE): Add _nss_db_init.
+ * nss/nss_db/db-init.c: New file.
+ * nss/nss_files/files-init.c: New file.
+ * nss/nsswitch.c (nss_load_library): New function. Broken out of
+ __nss_lookup_function.
+ (__nss_lookup_function): Call nss_load_library.
+ (nss_load_all_libraries): New function.
+ (__nss_disable_nscd): Take parameter with callback function for files
+ to register. Set is_nscd. Load all the DSOs for the NSS modules
+ used for the cached services.
+ * nss/nsswitch.h (__nss_disable_nscd): Adjust prototype.
+ * sysdeps/unix/sysv/linux/Makefile [subdir=nscd]: Pass the various -D
+ options for features to all the files in nscd.
+
+ * nss/nsswitch.c (nss_parse_file): Add missing fclose.
+
2011-07-10 Roland McGrath <roland@hack.frob.com>
* csu/elf-init.c (__libc_csu_init): Comment typo.