浏览代码

- don't include expired entries in DNS cache view output

Vladimir Marek 18 年之前
父节点
当前提交
5c20debe40
共有 1 个文件被更改,包括 6 次插入3 次删除
  1. 6 3
      dns_cache.c

+ 6 - 3
dns_cache.c

@@ -3333,6 +3333,7 @@ static char *print_type(unsigned short type)
 void dns_cache_view(rpc_t* rpc, void* ctx)
 {
 	int h;
+	int expires;
 	struct dns_hash_entry* e;
 	struct dns_rr* rr;
 	struct ip_addr ip;
@@ -3347,15 +3348,17 @@ void dns_cache_view(rpc_t* rpc, void* ctx)
 	LOCK_DNS_HASH();
 	for (h=0; h<DNS_HASH_SIZE; h++){
 		clist_foreach(&dns_hash[h], e, next){
+			expires = (s_ticks_t)(e->expire-now)<0?-1: TICKS_TO_S(e->expire-now);
+			if (expires < 0) {
+				continue;
+			}
 			rpc->printf(ctx, "{\n%sname: %s", SPACE_FORMAT, e->name);
 			rpc->printf(ctx, "%stype: %s", SPACE_FORMAT, print_type(e->type));
 			rpc->printf(ctx, "%ssize (bytes): %d", SPACE_FORMAT,
 								e->total_size);
 			rpc->printf(ctx, "%sreference counter: %d", SPACE_FORMAT,
 								e->refcnt.val);
-			rpc->printf(ctx, "%sexpires in (s): %d", SPACE_FORMAT,
-								(s_ticks_t)(e->expire-now)<0?-1:
-								TICKS_TO_S(e->expire-now));
+			rpc->printf(ctx, "%sexpires in (s): %d", SPACE_FORMAT, expires);
 			rpc->printf(ctx, "%slast used (s): %d", SPACE_FORMAT,
 								TICKS_TO_S(now-e->last_used));
 			rpc->printf(ctx, "%serror flags: %d", SPACE_FORMAT, e->err_flags);