Initial commit
This commit is contained in:
commit
a63dda57c2
23 changed files with 2654 additions and 0 deletions
60
checker/types.go
Normal file
60
checker/types.go
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
package checker
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/miekg/dns"
|
||||
)
|
||||
|
||||
const ObservationKey = "reverse-zone"
|
||||
|
||||
type ForwardAddress struct {
|
||||
Type string `json:"type"` // "A" or "AAAA"
|
||||
Address string `json:"address"`
|
||||
TTL uint32 `json:"ttl,omitempty"`
|
||||
}
|
||||
|
||||
type PTREntry struct {
|
||||
OwnerName string `json:"owner_name"` // FQDN of the PTR record (e.g. "42.1.168.192.in-addr.arpa.")
|
||||
ReverseIP string `json:"reverse_ip,omitempty"`
|
||||
Subdomain string `json:"subdomain,omitempty"`
|
||||
|
||||
Targets []string `json:"targets"`
|
||||
TTL uint32 `json:"ttl,omitempty"`
|
||||
|
||||
TargetSyntaxValid bool `json:"target_syntax_valid,omitempty"`
|
||||
TargetLooksGeneric bool `json:"target_looks_generic,omitempty"`
|
||||
|
||||
ForwardAddresses []ForwardAddress `json:"forward_addresses,omitempty"`
|
||||
ForwardMatch bool `json:"forward_match,omitempty"`
|
||||
TargetResolves bool `json:"target_resolves,omitempty"`
|
||||
ForwardError string `json:"forward_error,omitempty"`
|
||||
}
|
||||
|
||||
type ReverseZoneData struct {
|
||||
Zone string `json:"zone"`
|
||||
IsReverseZone bool `json:"is_reverse_zone"`
|
||||
IsIPv6 bool `json:"is_ipv6"`
|
||||
|
||||
PTRCount int `json:"ptr_count"`
|
||||
Entries []PTREntry `json:"entries,omitempty"` // capped to maxPTRsToCheck
|
||||
Truncated bool `json:"truncated,omitempty"`
|
||||
LoadError string `json:"load_error,omitempty"` // structural failure preventing collection
|
||||
}
|
||||
|
||||
// ptrService mirrors happyDomain's `svcs.PTR`.
|
||||
type ptrService struct {
|
||||
Record *dns.PTR `json:"Record"`
|
||||
}
|
||||
|
||||
// serviceMessage mirrors happyDomain's per-service envelope inside a Zone.
|
||||
type serviceMessage struct {
|
||||
Type string `json:"_svctype"`
|
||||
Service json.RawMessage `json:"Service"`
|
||||
}
|
||||
|
||||
// zoneMessage mirrors the subset of happyDomain's Zone needed here.
|
||||
type zoneMessage struct {
|
||||
DefaultTTL uint32 `json:"default_ttl"`
|
||||
Services map[string][]serviceMessage `json:"services"`
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue