fix: clouddns plugin answers limited to one response (#5986)
* inserts all records in the loop. checks for insert errors. adds test. fixes #5985 Signed-off-by: Marcos Mendez <marcos_mendez@homedepot.com>
This commit is contained in:
parent
c2d56581b5
commit
48c40ae1cd
2 changed files with 23 additions and 3 deletions
plugin/clouddns
|
@ -161,16 +161,18 @@ func updateZoneFromRRS(rrs *gcp.ResourceRecordSetsListResponse, z *file.Zone) er
|
|||
if rr.Type == "CNAME" || rr.Type == "PTR" {
|
||||
value = dns.Fqdn(value)
|
||||
}
|
||||
|
||||
// Assemble RFC 1035 conforming record to pass into dns scanner.
|
||||
rfc1035 = fmt.Sprintf("%s %d IN %s %s", dns.Fqdn(rr.Name), rr.Ttl, rr.Type, value)
|
||||
r, err = dns.NewRR(rfc1035)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to parse resource record: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
z.Insert(r)
|
||||
err = z.Insert(r)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to insert record: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -114,6 +114,15 @@ func (c fakeGCPClient) listRRSets(ctx context.Context, projectName, hostedZoneNa
|
|||
Type: "SOA",
|
||||
Rrdatas: []string{"ns-cloud-e1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 300 259200 300"},
|
||||
},
|
||||
{
|
||||
Name: "_dummy._tcp.example.org.",
|
||||
Ttl: 300,
|
||||
Type: "SRV",
|
||||
Rrdatas: []string{
|
||||
"0 0 5269 split-example.org",
|
||||
"0 0 5269 other-example.org",
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -262,6 +271,15 @@ func TestCloudDNS(t *testing.T) {
|
|||
"www.example.org. 300 IN A 1.2.3.4",
|
||||
},
|
||||
},
|
||||
// 13. example.org SRV found with 2 answers - success.
|
||||
{
|
||||
qname: "_dummy._tcp.example.org.",
|
||||
qtype: dns.TypeSRV,
|
||||
wantAnswer: []string{
|
||||
"_dummy._tcp.example.org. 300 IN SRV 0 0 5269 split-example.org.",
|
||||
"_dummy._tcp.example.org. 300 IN SRV 0 0 5269 other-example.org.",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for ti, tc := range tests {
|
||||
|
|
Loading…
Add table
Reference in a new issue