mirror of
https://codeberg.org/cunicu/cunicu.git
synced 2025-10-04 08:26:48 +08:00
33 lines
777 B
Go
33 lines
777 B
Go
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))
|
|
}
|
|
}
|
|
}
|