From a644aa8e395a9955c19ac56c9dbcbbd49e2db30c Mon Sep 17 00:00:00 2001 From: Baptiste Assmann Date: Sat, 12 Aug 2017 11:16:55 +0200 Subject: [PATCH] MINOR: dns: make debugging function dump_dns_config() compatible with SRV records This function is particularly useful when debugging DNS resolution at run time in HAProxy. SRV records must be read differently, hence we have to update this function. --- src/dns.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/src/dns.c b/src/dns.c index 9eff60ed8..b87e1019f 100644 --- a/src/dns.c +++ b/src/dns.c @@ -105,11 +105,31 @@ void dump_dns_config() printf(" %p %s\n", curr_resolution, curr_resolution->hostname_dn); printf(" requester.wait list:\n"); list_for_each_entry(curr_requester, &curr_resolution->requester.wait, list) { - printf(" %p %s %d\n", curr_requester, objt_server(curr_requester->requester)->id, curr_requester->prefered_query_type); + switch (obj_type(curr_requester->requester)) { + case OBJ_TYPE_SERVER: + printf(" %p SRV %s %d\n", curr_requester, objt_server(curr_requester->requester)->id, curr_requester->prefered_query_type); + break; + case OBJ_TYPE_SRVRQ: + printf(" %p SRVRQ %s %d\n", curr_requester, objt_dns_srvrq(curr_requester->requester)->name, curr_requester->prefered_query_type); + break; + case OBJ_TYPE_NONE: + default: + ;; + } } printf(" requester.curr list:\n"); list_for_each_entry(curr_requester, &curr_resolution->requester.curr, list) { - printf(" %p %s %d\n", curr_requester, objt_server(curr_requester->requester)->id, curr_requester->prefered_query_type); + switch (obj_type(curr_requester->requester)) { + case OBJ_TYPE_SERVER: + printf(" %p SRV %s %d\n", curr_requester, objt_server(curr_requester->requester)->id, curr_requester->prefered_query_type); + break; + case OBJ_TYPE_SRVRQ: + printf(" %p SRVRQ %s %d\n", curr_requester, objt_dns_srvrq(curr_requester->requester)->name, curr_requester->prefered_query_type); + break; + case OBJ_TYPE_NONE: + default: + ;; + } } } printf(" resolution.curr list:\n"); @@ -117,11 +137,31 @@ void dump_dns_config() printf(" %p %s\n", curr_resolution, curr_resolution->hostname_dn); printf(" requester.wait list:\n"); list_for_each_entry(curr_requester, &curr_resolution->requester.wait, list) { - printf(" %p %s %d\n", curr_requester, objt_server(curr_requester->requester)->id, curr_requester->prefered_query_type); + switch (obj_type(curr_requester->requester)) { + case OBJ_TYPE_SERVER: + printf(" %p SRV %s %d\n", curr_requester, objt_server(curr_requester->requester)->id, curr_requester->prefered_query_type); + break; + case OBJ_TYPE_SRVRQ: + printf(" %p SRVRQ %s %d\n", curr_requester, objt_dns_srvrq(curr_requester->requester)->name, curr_requester->prefered_query_type); + break; + case OBJ_TYPE_NONE: + default: + ;; + } } printf(" requester.curr list:\n"); list_for_each_entry(curr_requester, &curr_resolution->requester.curr, list) { - printf(" %p %s %d\n", curr_requester, objt_server(curr_requester->requester)->id, curr_requester->prefered_query_type); + switch (obj_type(curr_requester->requester)) { + case OBJ_TYPE_SERVER: + printf(" %p SRV %s %d\n", curr_requester, objt_server(curr_requester->requester)->id, curr_requester->prefered_query_type); + break; + case OBJ_TYPE_SRVRQ: + printf(" %p SRVRQ %s %d\n", curr_requester, objt_dns_srvrq(curr_requester->requester)->name, curr_requester->prefered_query_type); + break; + case OBJ_TYPE_NONE: + default: + ;; + } } } }