fix events
This commit is contained in:
parent
1441afb6e4
commit
849a584371
35
kvas2.go
35
kvas2.go
@ -63,26 +63,23 @@ type App struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) handleLink(event netlink.LinkUpdate) {
|
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 {
|
switch event.Change {
|
||||||
case 0x00000001:
|
case 0x00000001:
|
||||||
log.Debug().
|
ifaceName := event.Link.Attrs().Name
|
||||||
Str("interface", event.Link.Attrs().Name).
|
for _, group := range a.Groups {
|
||||||
Str("operstatestr", event.Attrs().OperState.String()).
|
if group.Interface != ifaceName {
|
||||||
Int("operstate", int(event.Attrs().OperState)).
|
continue
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
err := group.LinkUpdateHook(event)
|
err := group.LinkUpdateHook(event)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
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:
|
||||||
@ -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
|
||||||
|
@ -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()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user