mirror of
https://github.com/safing/portmaster
synced 2025-09-04 19:49:15 +00:00
Reload resolver on config change
This commit is contained in:
parent
c71dfaab38
commit
36c60a1e33
1 changed files with 23 additions and 0 deletions
|
@ -2,6 +2,7 @@ package resolver
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/safing/portbase/log"
|
"github.com/safing/portbase/log"
|
||||||
|
@ -30,6 +31,7 @@ func start() error {
|
||||||
// load resolvers from config and environment
|
// load resolvers from config and environment
|
||||||
loadResolvers()
|
loadResolvers()
|
||||||
|
|
||||||
|
// reload after network change
|
||||||
err := module.RegisterEventHook(
|
err := module.RegisterEventHook(
|
||||||
"netenv",
|
"netenv",
|
||||||
"network changed",
|
"network changed",
|
||||||
|
@ -44,6 +46,27 @@ func start() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// reload after config change
|
||||||
|
prevNameservers := strings.Join(configuredNameServers(), " ")
|
||||||
|
err = module.RegisterEventHook(
|
||||||
|
"config",
|
||||||
|
"config change",
|
||||||
|
"update nameservers",
|
||||||
|
func(_ context.Context, _ interface{}) error {
|
||||||
|
newNameservers := strings.Join(configuredNameServers(), " ")
|
||||||
|
if newNameservers != prevNameservers {
|
||||||
|
prevNameservers = newNameservers
|
||||||
|
|
||||||
|
loadResolvers()
|
||||||
|
log.Debug("resolver: reloaded nameservers due to config change")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
module.StartServiceWorker(
|
module.StartServiceWorker(
|
||||||
"mdns handler",
|
"mdns handler",
|
||||||
5*time.Second,
|
5*time.Second,
|
||||||
|
|
Loading…
Add table
Reference in a new issue