diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-11-06 00:45:40 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-11-06 00:45:40 +0000 |
commit | ffb1b882828a6fa71fb4e9be1c30cacafb3c70c3 (patch) | |
tree | 9819639dc6d59b7cfbd3630b7027b57c0d696f47 /nscd/aicache.c | |
parent | 41ff2a4999f64527a0552c6a9c203157e161fa97 (diff) | |
download | glibc-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.c | 4 |
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 |