|
@@ -3804,6 +3804,7 @@ void dns_cache_print_entry(rpc_t* rpc, void* ctx, struct dns_hash_entry* e)
|
|
ticks_t now;
|
|
ticks_t now;
|
|
str s;
|
|
str s;
|
|
int i;
|
|
int i;
|
|
|
|
+ int n;
|
|
|
|
|
|
now=get_ticks_raw();
|
|
now=get_ticks_raw();
|
|
expires = (s_ticks_t)(e->expire-now)<0?-1: TICKS_TO_S(e->expire-now);
|
|
expires = (s_ticks_t)(e->expire-now)<0?-1: TICKS_TO_S(e->expire-now);
|
|
@@ -3824,16 +3825,12 @@ void dns_cache_print_entry(rpc_t* rpc, void* ctx, struct dns_hash_entry* e)
|
|
TICKS_TO_S(now-e->last_used));
|
|
TICKS_TO_S(now-e->last_used));
|
|
rpc->rpl_printf(ctx, "%snegative entry: %s", SPACE_FORMAT,
|
|
rpc->rpl_printf(ctx, "%snegative entry: %s", SPACE_FORMAT,
|
|
(e->ent_flags & DNS_FLAG_BAD_NAME) ? "yes" : "no");
|
|
(e->ent_flags & DNS_FLAG_BAD_NAME) ? "yes" : "no");
|
|
-
|
|
|
|
|
|
+ n = 0;
|
|
for (rr=e->rr_lst; rr; rr=rr->next) {
|
|
for (rr=e->rr_lst; rr; rr=rr->next) {
|
|
|
|
+ rpc->rpl_printf(ctx, "%srr idx: %d", SPACE_FORMAT, n++);
|
|
switch(e->type) {
|
|
switch(e->type) {
|
|
case T_A:
|
|
case T_A:
|
|
case T_AAAA:
|
|
case T_AAAA:
|
|
- if(e->type==T_A) {
|
|
|
|
- rpc->rpl_printf(ctx, "%srr type: a", SPACE_FORMAT);
|
|
|
|
- } else {
|
|
|
|
- rpc->rpl_printf(ctx, "%srr type: aaaa", SPACE_FORMAT);
|
|
|
|
- }
|
|
|
|
if (dns_rr2ip(e->type, rr, &ip)==0){
|
|
if (dns_rr2ip(e->type, rr, &ip)==0){
|
|
rpc->rpl_printf(ctx, "%srr ip: %s", SPACE_FORMAT,
|
|
rpc->rpl_printf(ctx, "%srr ip: %s", SPACE_FORMAT,
|
|
ip_addr2a(&ip) );
|
|
ip_addr2a(&ip) );
|
|
@@ -3843,7 +3840,6 @@ void dns_cache_print_entry(rpc_t* rpc, void* ctx, struct dns_hash_entry* e)
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case T_SRV:
|
|
case T_SRV:
|
|
- rpc->rpl_printf(ctx, "%srr type: srv", SPACE_FORMAT);
|
|
|
|
rpc->rpl_printf(ctx, "%srr name: %s", SPACE_FORMAT,
|
|
rpc->rpl_printf(ctx, "%srr name: %s", SPACE_FORMAT,
|
|
((struct srv_rdata*)(rr->rdata))->name);
|
|
((struct srv_rdata*)(rr->rdata))->name);
|
|
rpc->rpl_printf(ctx, "%srr port: %d", SPACE_FORMAT,
|
|
rpc->rpl_printf(ctx, "%srr port: %d", SPACE_FORMAT,
|
|
@@ -3854,7 +3850,6 @@ void dns_cache_print_entry(rpc_t* rpc, void* ctx, struct dns_hash_entry* e)
|
|
((struct srv_rdata*)(rr->rdata))->weight);
|
|
((struct srv_rdata*)(rr->rdata))->weight);
|
|
break;
|
|
break;
|
|
case T_NAPTR:
|
|
case T_NAPTR:
|
|
- rpc->rpl_printf(ctx, "%srr type: naptr", SPACE_FORMAT);
|
|
|
|
rpc->rpl_printf(ctx, "%srr order: %d", SPACE_FORMAT,
|
|
rpc->rpl_printf(ctx, "%srr order: %d", SPACE_FORMAT,
|
|
((struct naptr_rdata*)(rr->rdata))->order);
|
|
((struct naptr_rdata*)(rr->rdata))->order);
|
|
rpc->rpl_printf(ctx, "%srr preference: %d", SPACE_FORMAT,
|
|
rpc->rpl_printf(ctx, "%srr preference: %d", SPACE_FORMAT,
|
|
@@ -3877,12 +3872,10 @@ void dns_cache_print_entry(rpc_t* rpc, void* ctx, struct dns_hash_entry* e)
|
|
SPACE_FORMAT, s.len, s.s);
|
|
SPACE_FORMAT, s.len, s.s);
|
|
break;
|
|
break;
|
|
case T_CNAME:
|
|
case T_CNAME:
|
|
- rpc->rpl_printf(ctx, "%srr type: cname", SPACE_FORMAT);
|
|
|
|
rpc->rpl_printf(ctx, "%srr name: %s", SPACE_FORMAT,
|
|
rpc->rpl_printf(ctx, "%srr name: %s", SPACE_FORMAT,
|
|
((struct cname_rdata*)(rr->rdata))->name);
|
|
((struct cname_rdata*)(rr->rdata))->name);
|
|
break;
|
|
break;
|
|
case T_TXT:
|
|
case T_TXT:
|
|
- rpc->rpl_printf(ctx, "%srr type: txt", SPACE_FORMAT);
|
|
|
|
for (i=0; i<((struct txt_rdata*)(rr->rdata))->cstr_no;
|
|
for (i=0; i<((struct txt_rdata*)(rr->rdata))->cstr_no;
|
|
i++){
|
|
i++){
|
|
rpc->rpl_printf(ctx, "%stxt[%d]: %s", SPACE_FORMAT, i,
|
|
rpc->rpl_printf(ctx, "%stxt[%d]: %s", SPACE_FORMAT, i,
|
|
@@ -3890,7 +3883,6 @@ void dns_cache_print_entry(rpc_t* rpc, void* ctx, struct dns_hash_entry* e)
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case T_EBL:
|
|
case T_EBL:
|
|
- rpc->rpl_printf(ctx, "%srr type: ebl", SPACE_FORMAT);
|
|
|
|
rpc->rpl_printf(ctx, "%srr position: %d", SPACE_FORMAT,
|
|
rpc->rpl_printf(ctx, "%srr position: %d", SPACE_FORMAT,
|
|
((struct ebl_rdata*)(rr->rdata))->position);
|
|
((struct ebl_rdata*)(rr->rdata))->position);
|
|
rpc->rpl_printf(ctx, "%srr separator: %s", SPACE_FORMAT,
|
|
rpc->rpl_printf(ctx, "%srr separator: %s", SPACE_FORMAT,
|
|
@@ -3899,7 +3891,6 @@ void dns_cache_print_entry(rpc_t* rpc, void* ctx, struct dns_hash_entry* e)
|
|
((struct ebl_rdata*)(rr->rdata))->apex);
|
|
((struct ebl_rdata*)(rr->rdata))->apex);
|
|
break;
|
|
break;
|
|
case T_PTR:
|
|
case T_PTR:
|
|
- rpc->rpl_printf(ctx, "%srr type: ptr", SPACE_FORMAT);
|
|
|
|
rpc->rpl_printf(ctx, "%srr name: %s", SPACE_FORMAT,
|
|
rpc->rpl_printf(ctx, "%srr name: %s", SPACE_FORMAT,
|
|
((struct ptr_rdata*)(rr->rdata))->ptrdname);
|
|
((struct ptr_rdata*)(rr->rdata))->ptrdname);
|
|
break;
|
|
break;
|