Revamp intel and nameserver packages
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user