s4-resolver: do not use all the A and AAAA records, those after a NS are not the...
[mat/samba.git] / source4 / libcli / resolve / dns_ex.c
index 20f2c0c03ae57cc1b221fedaa264d33f586c7fe6..9467521394efb2afa5f4b9dcd11e9ed1d69a03dc 100644 (file)
@@ -89,6 +89,14 @@ static uint32_t count_dns_rr(struct rk_resource_record *head, unsigned record_ty
                        continue;
                }
 
+               if (rr->type == rk_ns_t_ns) {
+                       /*
+                        * Record that will follow will be related to the NS
+                        * not what we are really interested with.
+                        * It's a good idea not to count them
+                        */
+                       break;
+               }
                /* we are only interested by requested record */
                if (rr->type != record_type) {
                        continue;
@@ -234,6 +242,14 @@ static struct dns_records_container get_a_aaaa_records(TALLOC_CTX *mem_ctx,
                                continue;
                        }
 
+                       if (rr->type == rk_ns_t_ns) {
+                               /*
+                                * After the record for NS will come the A or AAAA
+                                * record of the NS.
+                                */
+                               break;
+                       }
+
                        /* we are only interested in A and AAAA records */
                        if (rr->type != rk_ns_t_a && rr->type != rk_ns_t_aaaa) {
                                continue;