Support for multiple records with the same name
This commit is contained in:
parent
ab08d745a1
commit
42c5d43610
1 changed files with 19 additions and 17 deletions
36
dns.go
36
dns.go
|
|
@ -21,12 +21,11 @@ type DNSRecord struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type DomainPart struct {
|
type DomainPart struct {
|
||||||
Record DNSRecord
|
Record []DNSRecord
|
||||||
Subparts map[string]*DomainPart `json:",omitempty"`
|
Subparts map[string]*DomainPart `json:",omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type RecordsTree struct {
|
type RecordsTree struct {
|
||||||
Record DNSRecord
|
|
||||||
Children []RecordsTree
|
Children []RecordsTree
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -106,11 +105,12 @@ func BuildRecordsTree(records []DNSRecord) *DomainPart {
|
||||||
for _, part := range currentDomainNameSplit {
|
for _, part := range currentDomainNameSplit {
|
||||||
if nextDomainPart, found := curPart.Subparts[part]; !found {
|
if nextDomainPart, found := curPart.Subparts[part]; !found {
|
||||||
newPart := new(DomainPart)
|
newPart := new(DomainPart)
|
||||||
newPart.Record = record
|
newPart.Record = []DNSRecord{record}
|
||||||
newPart.Subparts = make(map[string]*DomainPart)
|
newPart.Subparts = make(map[string]*DomainPart)
|
||||||
curPart.Subparts[strings.ToLower(part)] = newPart
|
curPart.Subparts[strings.ToLower(part)] = newPart
|
||||||
curPart = newPart
|
curPart = newPart
|
||||||
} else {
|
} else {
|
||||||
|
nextDomainPart.Record = append(nextDomainPart.Record, record)
|
||||||
curPart = nextDomainPart
|
curPart = nextDomainPart
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -192,20 +192,22 @@ func (dp *DomainPart) ToHTMLElements(parts []string) []HTMLElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(subpart.Subparts) == 0 {
|
if len(subpart.Subparts) == 0 {
|
||||||
html := fmt.Sprintf(
|
for _, rec := range subpart.Record {
|
||||||
`
|
html := fmt.Sprintf(
|
||||||
<div class="record" style="padding-left: %dpx" data-top="%s"><span>%s</span><span>%s</span></div>
|
`
|
||||||
<div class="type">%s</div>
|
<div class="record" style="padding-left: %dpx" data-top="%s"><span>%s</span><span>%s</span></div>
|
||||||
<div class="value">%s</div>
|
<div class="type">%s</div>
|
||||||
`,
|
<div class="value">%s</div>
|
||||||
(len(newParts)-1)*32,
|
`,
|
||||||
restPart, // data-top
|
(len(newParts)-1)*32,
|
||||||
mostSpecificPart,
|
restPart, // data-top
|
||||||
restPart,
|
mostSpecificPart,
|
||||||
subpart.Record.Type,
|
restPart,
|
||||||
subpart.Record.String(),
|
rec.Type,
|
||||||
)
|
rec.String(),
|
||||||
lines = append(lines, HTMLElement{Header: false, HTML: html})
|
)
|
||||||
|
lines = append(lines, HTMLElement{Header: false, HTML: html})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue