diff options
Diffstat (limited to 'nis')
-rw-r--r-- | nis/nis_call.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/nis/nis_call.c b/nis/nis_call.c index 3fa37e45a3..cb7839a6f8 100644 --- a/nis/nis_call.c +++ b/nis/nis_call.c @@ -680,16 +680,18 @@ nis_server_cache_add (const_nis_name name, int search_parent, /* Choose which entry should be evicted from the cache. */ loc = &nis_server_cache[0]; if (*loc != NULL) - for (i = 1; i < 16; ++i) - if (nis_server_cache[i] == NULL) - { + { + for (i = 1; i < 16; ++i) + if (nis_server_cache[i] == NULL) + { + loc = &nis_server_cache[i]; + break; + } + else if ((*loc)->uses > nis_server_cache[i]->uses + || ((*loc)->uses == nis_server_cache[i]->uses + && (*loc)->expires > nis_server_cache[i]->expires)) loc = &nis_server_cache[i]; - break; - } - else if ((*loc)->uses > nis_server_cache[i]->uses - || ((*loc)->uses == nis_server_cache[i]->uses - && (*loc)->expires > nis_server_cache[i]->expires)) - loc = &nis_server_cache[i]; + } old = *loc; *loc = new; |