Browse Source

dns: SortRegions() by ISO3166

Signed-off-by: Alejandro Mery <amery@jpi.io>
pull/24/head
Alejandro Mery 1 year ago
parent
commit
357c85dc1a
  1. 26
      pkg/dns/record.go

26
pkg/dns/record.go

@ -34,6 +34,32 @@ func SortAddrRecords(s []AddrRecord) []AddrRecord {
return s return s
} }
// SortRegions sorts regions. first by length those 3-character
// or shorter, and then by length. It's mostly aimed at
// supporting ISO-3166 order
func SortRegions(regions []string) []string {
sort.Slice(regions, func(i, j int) bool {
r1, r2 := regions[i], regions[j]
switch {
case len(r1) < 4:
switch {
case len(r1) < len(r2):
return true
case len(r1) > len(r2):
return false
default:
return r1 < r2
}
case len(r2) < 4:
return false
default:
return r1 < r2
}
})
return regions
}
// AddrRecord represents an A or AAAA record // AddrRecord represents an A or AAAA record
type AddrRecord struct { type AddrRecord struct {
Name string Name string

Loading…
Cancel
Save