Skip to content

Commit

Permalink
feat: add DS record support
Browse files Browse the repository at this point in the history
Signed-off-by: Andrei Krasnitski <andrei.krasnitski@mendix.com>
  • Loading branch information
Infra-Red committed Feb 28, 2023
1 parent 1b29a32 commit 4fc9845
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
27 changes: 27 additions & 0 deletions bind.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,11 @@ func ConvertBindToRR(record dns.RR) *route53.ResourceRecord {
return &route53.ResourceRecord{
Value: aws.String(value),
}
case *dns.DS:
value := fmt.Sprintf("%d %d %d %s", record.KeyTag, record.Algorithm, record.DigestType, record.Digest)
return &route53.ResourceRecord{
Value: aws.String(value),
}
default:
errorAndExit(fmt.Sprintf("Unsupported resource record: %s", record))
}
Expand Down Expand Up @@ -454,6 +459,28 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {
}
ret = append(ret, dnsrr)
}
case "DS":
for _, rr := range rrset.ResourceRecords {
var keyTag uint16
var algorithm uint8
var digestType uint8
var digest string
fmt.Sscanf(*rr.Value, "%d %d %d %s", &keyTag, &algorithm, &digestType, &digest)

dnsrr := &dns.DS{
Hdr: dns.RR_Header{
Name: name,
Rrtype: dns.TypeDS,
Class: dns.ClassINET,
Ttl: uint32(*rrset.TTL),
},
KeyTag: keyTag,
Algorithm: algorithm,
DigestType: digestType,
Digest: digest,
}
ret = append(ret, dnsrr)
}
}
}

Expand Down
26 changes: 26 additions & 0 deletions bind_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,32 @@ var testConvertRRSetToBindTable = []struct {
},
},
},
{
Input: route53.ResourceRecordSet{
Type: aws.String("DS"),
Name: aws.String("example.com."),
ResourceRecords: []*route53.ResourceRecord{
{
Value: aws.String("123 4 5 1234567890ABCDEF1234567890ABCDEF"),
},
},
TTL: aws.Int64(86400),
},
Output: []dns.RR{
&dns.DS{
Hdr: dns.RR_Header{
Name: "example.com.",
Rrtype: dns.TypeDS,
Class: dns.ClassINET,
Ttl: uint32(86400),
},
KeyTag: 123,
Algorithm: 4,
DigestType: 5,
Digest: "1234567890ABCDEF1234567890ABCDEF",
},
},
},
{
Input: route53.ResourceRecordSet{
Type: aws.String("NAPTR"),
Expand Down

0 comments on commit 4fc9845

Please sign in to comment.