summary refs log tree commit diff
path: root/nscd/aicache.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-11-06 00:45:40 +0000
committerUlrich Drepper <drepper@redhat.com>2007-11-06 00:45:40 +0000
commitffb1b882828a6fa71fb4e9be1c30cacafb3c70c3 (patch)
tree9819639dc6d59b7cfbd3630b7027b57c0d696f47 /nscd/aicache.c
parent41ff2a4999f64527a0552c6a9c203157e161fa97 (diff)
downloadglibc-ffb1b882828a6fa71fb4e9be1c30cacafb3c70c3.tar.gz
glibc-ffb1b882828a6fa71fb4e9be1c30cacafb3c70c3.tar.xz
glibc-ffb1b882828a6fa71fb4e9be1c30cacafb3c70c3.zip
* nscd/aicache.c (addhstaiX): Check herrno after IPv4 lookup only
	when the lookup call failed.

	* nscd/nscd.h (struct database_dyn): Rename prunelock to prune_lock.
	Add prune_cond and wakeup_time.
	(CACHE_PRUNE_INTERNAL): Define.
	Update declarations of prune_cache and setup_thread.
	* nscd/connections.c (dbs): Update initializers.
	(CACHE_PRUNE_INTERNAL): Moved to nscd.h.
	(nscd_init): Default number of threads is now 4.
	(invalidate_cache): Take lock before calling prune_cache.
	(handle_request): If SELinux forbids the request, say so.
	(readylist_cond): Use static initializer.
	(nscd_run_prune): New function.  Used only by pruning threads.
	(nscd_run_worder): Renamed from nscd_run.  Remove support for pruning
	here.
	(fd_ready): Update nscd_run reference.
	(start_threads): No need to initialize readylist_cond.
	Start pruning threads separately.
	* nscd/nscd_setup_thread.c: Change return value type to int and always
	return 0.
	* sysdeps/unix/sysv/linux/nscd_setup_thread.c: Change return value type
	to int and return nonzero value if we can use the TID address hack.
	* nscd/cache.c (cache_add): If next wakeup time of cleanup thread for
	the database is later than the new entry's timeout, update the
	wakeup time and wake the cleanup thread.
	(prune_cache): Return seconds the next entry in the database is still
	valid.  Remove locking for pruning here.
	* nscd/nscd.conf: Document default number of threads.
Diffstat (limited to 'nscd/aicache.c')
-rw-r--r--nscd/aicache.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/nscd/aicache.c b/nscd/aicache.c
index 68706a4cf7..26968b2d4a 100644
--- a/nscd/aicache.c
+++ b/nscd/aicache.c
@@ -157,7 +157,7 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
 	      tmpbuf4 = tmpbuf6;
 	    }
 
-	  /* Next collect IPv4 information first.  */
+	  /* Next collect IPv4 information.  */
 	  while (1)
 	    {
 	      rc4 = 0;
@@ -170,7 +170,7 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
 	      tmpbuf4 = extend_alloca (tmpbuf4, tmpbuf4len, 2 * tmpbuf4len);
 	    }
 
-	  if (rc4 != 0 || herrno == NETDB_INTERNAL)
+	  if (rc4 != 0 && herrno == NETDB_INTERNAL)
 	    goto out;
 
 	  if (status[0] == NSS_STATUS_SUCCESS