mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
GANDI_V5 & DESEC: correctly handle multiple RR in a RRset (#1296)
When having multiple RR in a RRset, only a few of them may be applied. In my case, when I have two A records, only one of them makes its way to Gandi. In `convert.go`, we had: ```go var zrs []livedns.DomainRecord // [...] zrs = append(zrs, zr) keys[key] = &zrs[len(zrs)-1] ``` If the slice needs to be extended when appending, the reference we got in `keys[key]` may be outdated because the new slice contains a copy of the old one. We either need to store references to domain records in the slice or we need to stop keeping reference of items in the slice. I have fixed this with the second solution as I think the order of the RRsets is not important.
This commit is contained in:
@@ -63,10 +63,7 @@ func recordsToNative(rcs []*models.RecordConfig, origin string) []livedns.Domain
|
||||
RrsetName: label,
|
||||
RrsetValues: []string{r.GetTargetCombined()},
|
||||
}
|
||||
zrs = append(zrs, zr)
|
||||
//keys[key] = &zr // This didn't work.
|
||||
keys[key] = &zrs[len(zrs)-1] // This does work. I don't know why.
|
||||
|
||||
keys[key] = &zr
|
||||
} else {
|
||||
zr.RrsetValues = append(zr.RrsetValues, r.GetTargetCombined())
|
||||
|
||||
@@ -80,5 +77,8 @@ func recordsToNative(rcs []*models.RecordConfig, origin string) []livedns.Domain
|
||||
}
|
||||
}
|
||||
|
||||
for _, zr := range keys {
|
||||
zrs = append(zrs, *zr)
|
||||
}
|
||||
return zrs
|
||||
}
|
||||
|
Reference in New Issue
Block a user