mirror of
https://codeberg.org/cunicu/cunicu.git
synced 2025-10-23 08:49:26 +08:00
daemon: use per-interface features
Signed-off-by: Steffen Vogel <post@steffenvogel.de>
This commit is contained in:
32
pkg/daemon/feature/hsync/handlers.go
Normal file
32
pkg/daemon/feature/hsync/handlers.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package hsync
|
||||
|
||||
import (
|
||||
"net"
|
||||
|
||||
"github.com/stv0g/cunicu/pkg/core"
|
||||
"go.uber.org/zap"
|
||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||
)
|
||||
|
||||
func (hs *Interface) OnPeerAdded(p *core.Peer) {
|
||||
if err := hs.Sync(); err != nil {
|
||||
hs.logger.Error("Failed to update hosts file", zap.Error(err))
|
||||
}
|
||||
|
||||
p.OnModified(hs)
|
||||
}
|
||||
|
||||
func (hs *Interface) OnPeerRemoved(p *core.Peer) {
|
||||
if err := hs.Sync(); err != nil {
|
||||
hs.logger.Error("Failed to update hosts file", zap.Error(err))
|
||||
}
|
||||
}
|
||||
|
||||
func (hs *Interface) OnPeerModified(p *core.Peer, old *wgtypes.Peer, m core.PeerModifier, ipsAdded, ipsRemoved []net.IPNet) {
|
||||
// Only update if the name has changed
|
||||
if m.Is(core.PeerModifiedName) {
|
||||
if err := hs.Sync(); err != nil {
|
||||
hs.logger.Error("Failed to update hosts file", zap.Error(err))
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user