]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: dns: make debugging function dump_dns_config() compatible with SRV records
authorBaptiste Assmann <bedis9@gmail.com>
Sat, 12 Aug 2017 09:16:55 +0000 (11:16 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 18 Aug 2017 09:25:25 +0000 (11:25 +0200)
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

index 9eff60ed873ce7268f2582ab72bb9316c7c44c23..b87e1019f9f4de27ceb3441228f25cb3cd76ae8b 100644 (file)
--- 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:
+                                               ;;
+                               }
                        }
                }
        }