fix events

This commit is contained in:
Vladimir Avtsenov 2025-02-12 04:11:28 +03:00
parent 1441afb6e4
commit 849a584371
2 changed files with 16 additions and 21 deletions

View File

@ -63,16 +63,14 @@ type App struct {
} }
func (a *App) handleLink(event netlink.LinkUpdate) { func (a *App) handleLink(event netlink.LinkUpdate) {
switch event.Change { log.Trace().
case 0x00000001:
log.Debug().
Str("interface", event.Link.Attrs().Name). Str("interface", event.Link.Attrs().Name).
Str("operstatestr", event.Attrs().OperState.String()). Str("operstatestr", event.Attrs().OperState.String()).
Int("operstate", int(event.Attrs().OperState)). Int("operstate", int(event.Attrs().OperState)).
Msg("interface change") Int("change", int(event.Change)).
switch event.Attrs().OperState { Msg("interface event")
// TODO: Может не подняться switch event.Change {
case netlink.OperUp: case 0x00000001:
ifaceName := event.Link.Attrs().Name ifaceName := event.Link.Attrs().Name
for _, group := range a.Groups { for _, group := range a.Groups {
if group.Interface != ifaceName { if group.Interface != ifaceName {
@ -84,7 +82,6 @@ func (a *App) handleLink(event netlink.LinkUpdate) {
log.Error().Str("group", group.ID.String()).Err(err).Msg("error while handling interface up") log.Error().Str("group", group.ID.String()).Err(err).Msg("error while handling interface up")
} }
} }
}
case 0xFFFFFFFF: case 0xFFFFFFFF:
switch event.Header.Type { switch event.Header.Type {
case 16: case 16:
@ -243,9 +240,7 @@ func (a *App) start(ctx context.Context) (err error) {
if err != nil { if err != nil {
return fmt.Errorf("failed to subscribe to link updates: %w", err) return fmt.Errorf("failed to subscribe to link updates: %w", err)
} }
defer func() { defer close(linkUpdateDone)
close(linkUpdateDone)
}()
/* /*
Global loop Global loop

View File

@ -278,7 +278,7 @@ func (r *IPSetToLink) NetfilterDHook(table string) error {
} }
func (r *IPSetToLink) LinkUpdateHook(event netlink.LinkUpdate) 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 nil
} }
return r.insertIPRoute() return r.insertIPRoute()