mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-27 08:14:18 -04:00 
			
		
		
		
	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:
		| @@ -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 { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user