Revamp intel and nameserver packages

This commit is contained in:
Daniel
2019-10-25 13:35:02 +02:00
parent 5799d2559b
commit 25b1d59663
18 changed files with 1675 additions and 1060 deletions

View File

@@ -2,8 +2,7 @@ package intel
import (
"context"
"github.com/miekg/dns"
"time"
"github.com/safing/portbase/log"
"github.com/safing/portbase/modules"
@@ -12,30 +11,41 @@ import (
_ "github.com/safing/portmaster/core"
)
var (
module *modules.Module
)
func init() {
modules.Register("intel", prep, start, nil, "core")
module = modules.Register("intel", prep, start, nil, "core", "network")
}
func prep() error {
return prepConfig()
}
func start() error {
// load resolvers from config and environment
loadResolvers(false)
loadResolvers()
go listenToMDNS()
err := module.RegisterEventHook(
"network",
"network changed",
"update nameservers",
func(_ context.Context, _ interface{}) error {
loadResolvers()
log.Debug("intel: reloaded nameservers due to network change")
return nil
},
)
if err != nil {
return err
}
module.StartServiceWorker(
"mdns handler",
5*time.Second,
listenToMDNS,
)
return nil
}
// GetIntelAndRRs returns intel and DNS resource records for the given domain.
func GetIntelAndRRs(ctx context.Context, domain string, qtype dns.Type, securityLevel uint8) (intel *Intel, rrs *RRCache) {
log.Tracer(ctx).Trace("intel: getting intel")
intel, err := GetIntel(domain)
if err != nil {
log.Tracer(ctx).Warningf("intel: failed to get intel: %s", err)
log.Errorf("intel: failed to get intel: %s", err)
intel = nil
}
log.Tracer(ctx).Tracef("intel: getting records")
rrs = Resolve(ctx, domain, qtype, securityLevel)
return
}