Refactor zone analyzer method visibility
This commit is contained in:
parent
37ed10f3bf
commit
bf20e73bd6
|
@ -93,19 +93,7 @@ type viewServiceSpec struct {
|
|||
Fields []service_field `json:"fields,omitempty"`
|
||||
}
|
||||
|
||||
func getServiceSpec(_ *config.Options, p httprouter.Params, body io.Reader) Response {
|
||||
ssid := string(p.ByName("ssid"))
|
||||
|
||||
svc, err := svcs.FindSubService(ssid)
|
||||
if err != nil {
|
||||
return APIErrorResponse{
|
||||
err: err,
|
||||
status: http.StatusNotFound,
|
||||
}
|
||||
}
|
||||
|
||||
svcType := reflect.Indirect(reflect.ValueOf(svc)).Type()
|
||||
|
||||
func getSpecs(svcType reflect.Type) viewServiceSpec {
|
||||
fields := []service_field{}
|
||||
for i := 0; i < svcType.NumField(); i += 1 {
|
||||
jsonTag := svcType.Field(i).Tag.Get("json")
|
||||
|
@ -153,7 +141,21 @@ func getServiceSpec(_ *config.Options, p httprouter.Params, body io.Reader) Resp
|
|||
fields = append(fields, f)
|
||||
}
|
||||
|
||||
return viewServiceSpec{fields}
|
||||
}
|
||||
|
||||
func getServiceSpec(_ *config.Options, p httprouter.Params, body io.Reader) Response {
|
||||
ssid := string(p.ByName("ssid"))
|
||||
|
||||
svc, err := svcs.FindSubService(ssid)
|
||||
if err != nil {
|
||||
return APIErrorResponse{
|
||||
err: err,
|
||||
status: http.StatusNotFound,
|
||||
}
|
||||
}
|
||||
|
||||
return APIResponse{
|
||||
response: viewServiceSpec{fields},
|
||||
response: getSpecs(reflect.Indirect(reflect.ValueOf(svc)).Type()),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,10 +45,10 @@ import (
|
|||
|
||||
func init() {
|
||||
router.POST("/api/source_settings/*ssid", apiAuthHandler(getSourceSettingsState))
|
||||
//router.POST("/api/domains/:domain/zone/:zoneid/:subdomain/provider_settings/:psid", apiAuthHandler(getSourceSettingsState))
|
||||
}
|
||||
|
||||
type SourceSettingsState struct {
|
||||
happydns.Source
|
||||
type FormState struct {
|
||||
Id int64 `json:"_id,omitempty"`
|
||||
Name string `json:"_comment"`
|
||||
State int32 `json:"state"`
|
||||
|
@ -56,10 +56,19 @@ type SourceSettingsState struct {
|
|||
Redirect *string `json:"redirect,omitempty"`
|
||||
}
|
||||
|
||||
type SourceSettingsState struct {
|
||||
FormState
|
||||
happydns.Source
|
||||
}
|
||||
|
||||
type FormResponse struct {
|
||||
From *forms.CustomForm `json:"form,omitempty"`
|
||||
Redirect *string `json:"redirect,omitempty"`
|
||||
}
|
||||
|
||||
type SourceSettingsResponse struct {
|
||||
FormResponse
|
||||
happydns.Source `json:"Source,omitempty"`
|
||||
From *forms.CustomForm `json:"form,omitempty"`
|
||||
Redirect *string `json:"redirect,omitempty"`
|
||||
}
|
||||
|
||||
func getSourceSettingsState(cfg *config.Options, req *RequestResources, body io.Reader) Response {
|
||||
|
@ -132,8 +141,8 @@ func getSourceSettingsState(cfg *config.Options, req *RequestResources, body io.
|
|||
} else {
|
||||
return APIResponse{
|
||||
response: SourceSettingsResponse{
|
||||
Source: s,
|
||||
Redirect: uss.Redirect,
|
||||
Source: s,
|
||||
FormResponse: FormResponse{Redirect: uss.Redirect},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -154,8 +163,8 @@ func getSourceSettingsState(cfg *config.Options, req *RequestResources, body io.
|
|||
} else {
|
||||
return APIResponse{
|
||||
response: SourceSettingsResponse{
|
||||
Source: s,
|
||||
Redirect: uss.Redirect,
|
||||
Source: s,
|
||||
FormResponse: FormResponse{Redirect: uss.Redirect},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -165,7 +174,7 @@ func getSourceSettingsState(cfg *config.Options, req *RequestResources, body io.
|
|||
|
||||
return APIResponse{
|
||||
response: SourceSettingsResponse{
|
||||
From: form,
|
||||
FormResponse: FormResponse{From: form},
|
||||
},
|
||||
}
|
||||
}
|
|
@ -66,10 +66,10 @@ func (s *ACMEChallenge) GenRRs(domain string, ttl uint32, origin string) (rrs []
|
|||
}
|
||||
|
||||
func acmechallenge_analyze(a *Analyzer) error {
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, Prefix: "_acme-challenge"}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, Prefix: "_acme-challenge"}) {
|
||||
domain := strings.TrimPrefix(record.Header().Name, "_acme-challenge.")
|
||||
if txt, ok := record.(*dns.TXT); ok {
|
||||
a.useRR(record, domain, &ACMEChallenge{
|
||||
a.UseRR(record, domain, &ACMEChallenge{
|
||||
Challenge: strings.Join(txt.Txt, ""),
|
||||
})
|
||||
}
|
||||
|
|
|
@ -94,10 +94,10 @@ func (s *SpecialCNAME) GenRRs(domain string, ttl uint32, origin string) (rrs []d
|
|||
|
||||
func specialalias_analyze(a *Analyzer) error {
|
||||
// Try handle specials domains using CNAME
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeCNAME, Prefix: "_"}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeCNAME, Prefix: "_"}) {
|
||||
subdomains := SRV_DOMAIN.FindStringSubmatch(record.Header().Name)
|
||||
if cname, ok := record.(*dns.CNAME); len(subdomains) == 4 && ok {
|
||||
a.useRR(record, subdomains[3], &SpecialCNAME{
|
||||
a.UseRR(record, subdomains[3], &SpecialCNAME{
|
||||
SubDomain: fmt.Sprintf("_%s._%s", subdomains[1], subdomains[2]),
|
||||
Target: cname.Target,
|
||||
})
|
||||
|
@ -107,13 +107,13 @@ func specialalias_analyze(a *Analyzer) error {
|
|||
}
|
||||
|
||||
func alias_analyze(a *Analyzer) error {
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeCNAME}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeCNAME}) {
|
||||
if cname, ok := record.(*dns.CNAME); ok {
|
||||
newrr := &CNAME{
|
||||
Target: strings.TrimSuffix(cname.Target, "."+a.origin),
|
||||
}
|
||||
|
||||
a.useRR(record, cname.Header().Name, newrr)
|
||||
a.UseRR(record, cname.Header().Name, newrr)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
|
|
@ -61,7 +61,7 @@ type AnalyzerRecordFilter struct {
|
|||
Ttl uint32
|
||||
}
|
||||
|
||||
func (a *Analyzer) searchRR(arrs ...AnalyzerRecordFilter) (rrs []dns.RR) {
|
||||
func (a *Analyzer) SearchRR(arrs ...AnalyzerRecordFilter) (rrs []dns.RR) {
|
||||
for _, record := range a.zone {
|
||||
for _, arr := range arrs {
|
||||
if strings.HasPrefix(record.Header().Name, arr.Prefix) &&
|
||||
|
@ -79,7 +79,7 @@ func (a *Analyzer) searchRR(arrs ...AnalyzerRecordFilter) (rrs []dns.RR) {
|
|||
return
|
||||
}
|
||||
|
||||
func (a *Analyzer) useRR(rr dns.RR, domain string, svc happydns.Service) error {
|
||||
func (a *Analyzer) UseRR(rr dns.RR, domain string, svc happydns.Service) error {
|
||||
found := false
|
||||
for k, record := range a.zone {
|
||||
if record == rr {
|
||||
|
|
|
@ -97,7 +97,7 @@ func (s *Delegation) GenRRs(domain string, ttl uint32, origin string) (rrs []dns
|
|||
func delegation_analyze(a *Analyzer) error {
|
||||
delegations := map[string]*Delegation{}
|
||||
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeNS}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeNS}) {
|
||||
if ns, ok := record.(*dns.NS); ok {
|
||||
if _, ok := delegations[ns.Header().Name]; !ok {
|
||||
delegations[ns.Header().Name] = &Delegation{}
|
||||
|
@ -105,7 +105,7 @@ func delegation_analyze(a *Analyzer) error {
|
|||
|
||||
delegations[ns.Header().Name].NameServers = append(delegations[ns.Header().Name].NameServers, ns.Ns)
|
||||
|
||||
a.useRR(
|
||||
a.UseRR(
|
||||
record,
|
||||
ns.Header().Name,
|
||||
delegations[ns.Header().Name],
|
||||
|
@ -114,7 +114,7 @@ func delegation_analyze(a *Analyzer) error {
|
|||
}
|
||||
|
||||
for subdomain := range delegations {
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeDS, Domain: subdomain}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeDS, Domain: subdomain}) {
|
||||
if ds, ok := record.(*dns.DS); ok {
|
||||
delegations[subdomain].DS = append(delegations[subdomain].DS, DS{
|
||||
KeyTag: ds.KeyTag,
|
||||
|
@ -123,7 +123,7 @@ func delegation_analyze(a *Analyzer) error {
|
|||
Digest: ds.Digest,
|
||||
})
|
||||
|
||||
a.useRR(
|
||||
a.UseRR(
|
||||
record,
|
||||
subdomain,
|
||||
delegations[subdomain],
|
||||
|
|
|
@ -255,7 +255,7 @@ func email_analyze(a *Analyzer) (err error) {
|
|||
services := map[string]*EMail{}
|
||||
|
||||
// Handle only MX records
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeMX}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeMX}) {
|
||||
if mx, ok := record.(*dns.MX); ok {
|
||||
dn := mx.Header().Name
|
||||
|
||||
|
@ -271,7 +271,7 @@ func email_analyze(a *Analyzer) (err error) {
|
|||
},
|
||||
)
|
||||
|
||||
err = a.useRR(
|
||||
err = a.UseRR(
|
||||
record,
|
||||
dn,
|
||||
services[dn],
|
||||
|
@ -284,7 +284,7 @@ func email_analyze(a *Analyzer) (err error) {
|
|||
|
||||
for domain, service := range services {
|
||||
// Is there SPF record?
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, Domain: domain, Contains: "v=spf1"}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, Domain: domain, Contains: "v=spf1"}) {
|
||||
if service.SPF == nil {
|
||||
service.SPF = &SPF{}
|
||||
}
|
||||
|
@ -304,7 +304,7 @@ func email_analyze(a *Analyzer) (err error) {
|
|||
service.SPF.Content = strings.Join(fields, " ")
|
||||
}
|
||||
|
||||
err = a.useRR(record, domain, service)
|
||||
err = a.UseRR(record, domain, service)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
@ -312,7 +312,7 @@ func email_analyze(a *Analyzer) (err error) {
|
|||
|
||||
service.DKIM = map[string]*DKIM{}
|
||||
// Is there DKIM record?
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, SubdomainsOf: "_domainkey." + domain}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, SubdomainsOf: "_domainkey." + domain}) {
|
||||
selector := strings.TrimSuffix(record.Header().Name, "._domainkey."+domain)
|
||||
|
||||
if _, ok := service.DKIM[selector]; !ok {
|
||||
|
@ -323,14 +323,14 @@ func email_analyze(a *Analyzer) (err error) {
|
|||
service.DKIM[selector].Fields = append(service.DKIM[selector].Fields, strings.Split(strings.Join(txt.Txt, ""), ";")...)
|
||||
}
|
||||
|
||||
err = a.useRR(record, domain, service)
|
||||
err = a.UseRR(record, domain, service)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Is there DMARC record?
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, Domain: "_dmarc." + domain}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, Domain: "_dmarc." + domain}) {
|
||||
if service.DMARC == nil {
|
||||
service.DMARC = &DMARC{}
|
||||
}
|
||||
|
@ -339,14 +339,14 @@ func email_analyze(a *Analyzer) (err error) {
|
|||
service.DMARC.Fields = append(service.DMARC.Fields, strings.Split(strings.Join(txt.Txt, ""), ";")...)
|
||||
}
|
||||
|
||||
err = a.useRR(record, domain, service)
|
||||
err = a.UseRR(record, domain, service)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Is there MTA-STS record?
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, Domain: "_mta-sts." + domain}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, Domain: "_mta-sts." + domain}) {
|
||||
if service.MTA_STS == nil {
|
||||
service.MTA_STS = &MTA_STS{}
|
||||
}
|
||||
|
@ -355,14 +355,14 @@ func email_analyze(a *Analyzer) (err error) {
|
|||
service.MTA_STS.Fields = append(service.MTA_STS.Fields, strings.Split(strings.Join(txt.Txt, ""), ";")...)
|
||||
}
|
||||
|
||||
err = a.useRR(record, domain, service)
|
||||
err = a.UseRR(record, domain, service)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Is there MTA-STS record?
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, Domain: "_smtp._tls." + domain}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeTXT, Domain: "_smtp._tls." + domain}) {
|
||||
if service.TLS_RPT == nil {
|
||||
service.TLS_RPT = &TLS_RPT{}
|
||||
}
|
||||
|
@ -371,7 +371,7 @@ func email_analyze(a *Analyzer) (err error) {
|
|||
service.TLS_RPT.Fields = append(service.TLS_RPT.Fields, strings.Split(strings.Join(txt.Txt, ""), ";")...)
|
||||
}
|
||||
|
||||
err = a.useRR(record, domain, service)
|
||||
err = a.UseRR(record, domain, service)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
|
|
@ -99,7 +99,7 @@ func (s *MatrixIM) GenRRs(domain string, ttl uint32, origin string) (rrs []dns.R
|
|||
func matrix_analyze(a *Analyzer) error {
|
||||
matrixDomains := map[string]*MatrixIM{}
|
||||
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Prefix: "_matrix._tcp.", Type: dns.TypeSRV}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Prefix: "_matrix._tcp.", Type: dns.TypeSRV}) {
|
||||
if srv := parseSRV(record); srv != nil {
|
||||
domain := strings.TrimPrefix(record.Header().Name, "_matrix._tcp.")
|
||||
|
||||
|
@ -109,7 +109,7 @@ func matrix_analyze(a *Analyzer) error {
|
|||
|
||||
matrixDomains[domain].Matrix = append(matrixDomains[domain].Matrix, srv)
|
||||
|
||||
a.useRR(
|
||||
a.UseRR(
|
||||
record,
|
||||
domain,
|
||||
matrixDomains[domain],
|
||||
|
|
|
@ -117,7 +117,7 @@ func (s *SMimeCert) GenRRs(domain string, ttl uint32, origin string) (rrs []dns.
|
|||
}
|
||||
|
||||
func openpgpkey_analyze(a *Analyzer) (err error) {
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeOPENPGPKEY, Contains: "._openpgpkey."}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeOPENPGPKEY, Contains: "._openpgpkey."}) {
|
||||
if openpgpkey, ok := record.(*dns.OPENPGPKEY); ok {
|
||||
domain := record.Header().Name
|
||||
domain = domain[strings.Index(domain, "._openpgpkey")+13:]
|
||||
|
@ -130,7 +130,7 @@ func openpgpkey_analyze(a *Analyzer) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
err = a.useRR(
|
||||
err = a.UseRR(
|
||||
record,
|
||||
domain,
|
||||
&OpenPGP{
|
||||
|
@ -147,7 +147,7 @@ func openpgpkey_analyze(a *Analyzer) (err error) {
|
|||
}
|
||||
|
||||
func smimea_analyze(a *Analyzer) (err error) {
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeSMIMEA, Contains: "._smimecert."}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeSMIMEA, Contains: "._smimecert."}) {
|
||||
if smimecert, ok := record.(*dns.SMIMEA); ok {
|
||||
domain := record.Header().Name
|
||||
domain = domain[strings.Index(domain, "._smimecert")+12:]
|
||||
|
@ -160,7 +160,7 @@ func smimea_analyze(a *Analyzer) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
err = a.useRR(
|
||||
err = a.UseRR(
|
||||
record,
|
||||
domain,
|
||||
&SMimeCert{
|
||||
|
|
|
@ -97,7 +97,7 @@ func (s *Origin) GenRRs(domain string, ttl uint32, origin string) (rrs []dns.RR)
|
|||
}
|
||||
|
||||
func origin_analyze(a *Analyzer) error {
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeSOA}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeSOA}) {
|
||||
if soa, ok := record.(*dns.SOA); ok {
|
||||
origin := &Origin{
|
||||
Ns: soa.Ns,
|
||||
|
@ -109,16 +109,16 @@ func origin_analyze(a *Analyzer) error {
|
|||
Negttl: time.Duration(soa.Minttl) * time.Second,
|
||||
}
|
||||
|
||||
a.useRR(
|
||||
a.UseRR(
|
||||
record,
|
||||
soa.Header().Name,
|
||||
origin,
|
||||
)
|
||||
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeNS, Domain: soa.Header().Name}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeNS, Domain: soa.Header().Name}) {
|
||||
if ns, ok := record.(*dns.NS); ok {
|
||||
origin.NameServers = append(origin.NameServers, ns.Ns)
|
||||
a.useRR(
|
||||
a.UseRR(
|
||||
record,
|
||||
ns.Header().Name,
|
||||
origin,
|
||||
|
|
|
@ -122,7 +122,7 @@ func (s *Server) GenRRs(domain string, ttl uint32, origin string) (rrs []dns.RR)
|
|||
func server_analyze(a *Analyzer) error {
|
||||
pool := map[string][]dns.RR{}
|
||||
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeA}, AnalyzerRecordFilter{Type: dns.TypeAAAA}, AnalyzerRecordFilter{Type: dns.TypeSSHFP}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeA}, AnalyzerRecordFilter{Type: dns.TypeAAAA}, AnalyzerRecordFilter{Type: dns.TypeSSHFP}) {
|
||||
domain := record.Header().Name
|
||||
|
||||
pool[domain] = append(pool[domain], record)
|
||||
|
@ -156,7 +156,7 @@ next_pool:
|
|||
}
|
||||
|
||||
for _, rr := range rrs {
|
||||
a.useRR(rr, dn, s)
|
||||
a.UseRR(rr, dn, s)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -114,7 +114,7 @@ func (s *UnknownSRV) GenRRs(domain string, ttl uint32, origin string) (rrs []dns
|
|||
func srv_analyze(a *Analyzer) error {
|
||||
srvDomains := map[string]map[string]*UnknownSRV{}
|
||||
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeSRV}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeSRV}) {
|
||||
subdomains := SRV_DOMAIN.FindStringSubmatch(record.Header().Name)
|
||||
if srv := parseSRV(record); len(subdomains) == 4 && srv != nil {
|
||||
svc := subdomains[1] + "." + subdomains[2]
|
||||
|
@ -133,7 +133,7 @@ func srv_analyze(a *Analyzer) error {
|
|||
|
||||
srvDomains[domain][svc].SRV = append(srvDomains[domain][svc].SRV, srv)
|
||||
|
||||
a.useRR(
|
||||
a.UseRR(
|
||||
record,
|
||||
subdomains[3],
|
||||
srvDomains[domain][svc],
|
||||
|
|
|
@ -124,7 +124,7 @@ var (
|
|||
|
||||
func tlsa_analyze(a *Analyzer) (err error) {
|
||||
pool := map[string]*TLSAs{}
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Type: dns.TypeTLSA}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Type: dns.TypeTLSA}) {
|
||||
subdomains := TLSA_DOMAIN.FindStringSubmatch(record.Header().Name)
|
||||
if tlsa, ok := record.(*dns.TLSA); len(subdomains) == 4 && ok {
|
||||
var port uint64
|
||||
|
@ -152,7 +152,7 @@ func tlsa_analyze(a *Analyzer) (err error) {
|
|||
},
|
||||
)
|
||||
|
||||
err = a.useRR(
|
||||
err = a.UseRR(
|
||||
record,
|
||||
subdomains[3],
|
||||
pool[subdomains[3]],
|
||||
|
|
|
@ -113,7 +113,7 @@ func (s *XMPP) GenRRs(domain string, ttl uint32, origin string) (rrs []dns.RR) {
|
|||
}
|
||||
|
||||
func xmpp_subanalyze(a *Analyzer, prefix string, xmppDomains map[string]*XMPP, field string) error {
|
||||
for _, record := range a.searchRR(AnalyzerRecordFilter{Prefix: prefix, Type: dns.TypeSRV}) {
|
||||
for _, record := range a.SearchRR(AnalyzerRecordFilter{Prefix: prefix, Type: dns.TypeSRV}) {
|
||||
if srv := parseSRV(record); srv != nil {
|
||||
domain := strings.TrimPrefix(record.Header().Name, prefix)
|
||||
|
||||
|
@ -124,7 +124,7 @@ func xmpp_subanalyze(a *Analyzer, prefix string, xmppDomains map[string]*XMPP, f
|
|||
v := reflect.Indirect(reflect.ValueOf(xmppDomains[domain]))
|
||||
v.FieldByName(field).Set(reflect.Append(v.FieldByName(field), reflect.ValueOf(srv)))
|
||||
|
||||
a.useRR(
|
||||
a.UseRR(
|
||||
record,
|
||||
domain,
|
||||
xmppDomains[domain],
|
||||
|
|
Loading…
Reference in New Issue