mirror of
https://github.com/tailscale/tailscale.git
synced 2025-08-05 02:16:27 +00:00
lanscaping: remove inotify file watcher for linux dns resolv.conf
-rwxr-xr-x@ 1 bradfitz staff 12743346 Jan 10 22:39 /Users/bradfitz/bin/tailscaled.min -rwxr-xr-x@ 1 bradfitz staff 13238424 Jan 10 22:39 /Users/bradfitz/bin/tailscaled.minlinux Change-Id: Ic69f95c0f132499ba8186aecbe6357ad2a2f6085 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
@@ -10,7 +10,6 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
|
|||||||
github.com/go-json-experiment/json/internal/jsonwire from github.com/go-json-experiment/json+
|
github.com/go-json-experiment/json/internal/jsonwire from github.com/go-json-experiment/json+
|
||||||
github.com/go-json-experiment/json/jsontext from github.com/go-json-experiment/json+
|
github.com/go-json-experiment/json/jsontext from github.com/go-json-experiment/json+
|
||||||
github.com/golang/groupcache/lru from tailscale.com/net/dnscache
|
github.com/golang/groupcache/lru from tailscale.com/net/dnscache
|
||||||
L 💣 github.com/illarion/gonotify/v2 from tailscale.com/net/dns
|
|
||||||
L github.com/josharian/native from github.com/mdlayher/netlink+
|
L github.com/josharian/native from github.com/mdlayher/netlink+
|
||||||
L 💣 github.com/jsimonetti/rtnetlink from tailscale.com/net/netmon
|
L 💣 github.com/jsimonetti/rtnetlink from tailscale.com/net/netmon
|
||||||
L github.com/jsimonetti/rtnetlink/internal/unix from github.com/jsimonetti/rtnetlink
|
L github.com/jsimonetti/rtnetlink/internal/unix from github.com/jsimonetti/rtnetlink
|
||||||
|
@@ -5,55 +5,12 @@ package dns
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
|
||||||
|
|
||||||
"github.com/illarion/gonotify/v2"
|
|
||||||
"tailscale.com/health"
|
"tailscale.com/health"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (m *directManager) runFileWatcher() {
|
func (m *directManager) runFileWatcher() {
|
||||||
ctx, cancel := context.WithCancel(m.ctx)
|
<-m.ctx.Done()
|
||||||
defer cancel()
|
|
||||||
in, err := gonotify.NewInotify(ctx)
|
|
||||||
if err != nil {
|
|
||||||
// Oh well, we tried. This is all best effort for now, to
|
|
||||||
// surface warnings to users.
|
|
||||||
m.logf("dns: inotify new: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
const events = gonotify.IN_ATTRIB |
|
|
||||||
gonotify.IN_CLOSE_WRITE |
|
|
||||||
gonotify.IN_CREATE |
|
|
||||||
gonotify.IN_DELETE |
|
|
||||||
gonotify.IN_MODIFY |
|
|
||||||
gonotify.IN_MOVE
|
|
||||||
|
|
||||||
if err := in.AddWatch("/etc/", events); err != nil {
|
|
||||||
m.logf("dns: inotify addwatch: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
for {
|
|
||||||
events, err := in.Read()
|
|
||||||
if ctx.Err() != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
m.logf("dns: inotify read: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
var match bool
|
|
||||||
for _, ev := range events {
|
|
||||||
if ev.Name == resolvConf {
|
|
||||||
match = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !match {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
m.checkForFileTrample()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var resolvTrampleWarnable = health.Register(&health.Warnable{
|
var resolvTrampleWarnable = health.Register(&health.Warnable{
|
||||||
|
Reference in New Issue
Block a user