summary refs log tree commit diff
path: root/nscd/cache.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-04-16 09:38:29 +0000
committerUlrich Drepper <drepper@redhat.com>1999-04-16 09:38:29 +0000
commit2456406d72d9a02b97bcea7622dee93a031b97f5 (patch)
treecb309fa9e5e872e0eee5615c4a3b59339e02af9e /nscd/cache.c
parent3d08d8004c93a53b32f6a977d32fc92569a96023 (diff)
downloadglibc-2456406d72d9a02b97bcea7622dee93a031b97f5.tar.gz
glibc-2456406d72d9a02b97bcea7622dee93a031b97f5.tar.xz
glibc-2456406d72d9a02b97bcea7622dee93a031b97f5.zip
Update.
1999-04-16  Ulrich Drepper  <drepper@cygnus.com>

	* nscd/cache.c (prune_cache): Only disable file checking for
	future if the file does not exist.
	Update file_mtime if cache was flushed.
Diffstat (limited to 'nscd/cache.c')
-rw-r--r--nscd/cache.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/nscd/cache.c b/nscd/cache.c
index 52ef0383f7..e57c8686d2 100644
--- a/nscd/cache.c
+++ b/nscd/cache.c
@@ -142,10 +142,12 @@ prune_cache (struct database *table, time_t now)
       if (stat (table->filename, &st) < 0)
 	{
 	  char buf[128];
-	  /* We cannot stat() the file, disable file checking.  */
+	  /* We cannot stat() the file, disable file checking if the
+             file does not exist.  */
 	  dbg_log (_("cannot stat() file `%s': %s"),
 		   table->filename, strerror_r (errno, buf, sizeof (buf)));
-	  table->check_file = 0;
+	  if (errno == ENOENT)
+	    table->check_file = 0;
 	}
       else
 	{
@@ -153,7 +155,7 @@ prune_cache (struct database *table, time_t now)
 	    {
 	      /* The file changed.  Invalidate all entries.  */
 	      now = LONG_MAX;
-	      st.st_mtime = table->file_mtime;
+	      table->file_mtime = st.st_mtime;
 	    }
 	}
     }