From 849a584371681fce22b3197974d153c7e3a2b3ce Mon Sep 17 00:00:00 2001 From: Vladimir Avtsenov Date: Wed, 12 Feb 2025 04:11:28 +0300 Subject: [PATCH] fix events --- kvas2.go | 35 +++++++++++++------------------ netfilter-helper/ipset-to-link.go | 2 +- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/kvas2.go b/kvas2.go index 41d4afc..723c316 100644 --- a/kvas2.go +++ b/kvas2.go @@ -63,26 +63,23 @@ type App struct { } func (a *App) handleLink(event netlink.LinkUpdate) { + log.Trace(). + Str("interface", event.Link.Attrs().Name). + Str("operstatestr", event.Attrs().OperState.String()). + Int("operstate", int(event.Attrs().OperState)). + Int("change", int(event.Change)). + Msg("interface event") switch event.Change { case 0x00000001: - log.Debug(). - Str("interface", event.Link.Attrs().Name). - Str("operstatestr", event.Attrs().OperState.String()). - Int("operstate", int(event.Attrs().OperState)). - Msg("interface change") - switch event.Attrs().OperState { - // TODO: Может не подняться - case netlink.OperUp: - ifaceName := event.Link.Attrs().Name - for _, group := range a.Groups { - if group.Interface != ifaceName { - continue - } + ifaceName := event.Link.Attrs().Name + for _, group := range a.Groups { + if group.Interface != ifaceName { + continue + } - err := group.LinkUpdateHook(event) - if err != nil { - log.Error().Str("group", group.ID.String()).Err(err).Msg("error while handling interface up") - } + err := group.LinkUpdateHook(event) + if err != nil { + log.Error().Str("group", group.ID.String()).Err(err).Msg("error while handling interface up") } } case 0xFFFFFFFF: @@ -243,9 +240,7 @@ func (a *App) start(ctx context.Context) (err error) { if err != nil { return fmt.Errorf("failed to subscribe to link updates: %w", err) } - defer func() { - close(linkUpdateDone) - }() + defer close(linkUpdateDone) /* Global loop diff --git a/netfilter-helper/ipset-to-link.go b/netfilter-helper/ipset-to-link.go index c068303..e5ea2c1 100644 --- a/netfilter-helper/ipset-to-link.go +++ b/netfilter-helper/ipset-to-link.go @@ -278,7 +278,7 @@ func (r *IPSetToLink) NetfilterDHook(table string) error { } func (r *IPSetToLink) LinkUpdateHook(event netlink.LinkUpdate) error { - if !r.enabled || event.Change != 1 || event.Link.Attrs().Name != r.IfaceName || event.Attrs().OperState != netlink.OperUp { + if !r.enabled || event.Change != 1 || event.Link.Attrs().Name != r.IfaceName { return nil } return r.insertIPRoute()