diff --git a/internal/events/events.go b/internal/events/events.go index 167b7a1..ed6bf0d 100644 --- a/internal/events/events.go +++ b/internal/events/events.go @@ -3,10 +3,11 @@ package events type Event = string const ( - EventStart Event = "start" // start loading - EventLoaded Event = "loaded" // first load - EventQuit Event = "quit" // quit node gracefully - EventReload Event = "reload" // reload config - EventTerminated Event = "terminated" // process terminated - EventNFTablesReady Event = "nftablesReady" // nftables ready + EventStart Event = "start" // start loading + EventLoaded Event = "loaded" // first load + EventQuit Event = "quit" // quit node gracefully + EventReload Event = "reload" // reload config + EventTerminated Event = "terminated" // process terminated + EventNFTablesReady Event = "nftablesReady" // nftables ready + EventReloadSomeServers Event = "reloadSomeServers" // reload some servers ) diff --git a/internal/events/utils.go b/internal/events/utils.go index 2b4129d..bf72436 100644 --- a/internal/events/utils.go +++ b/internal/events/utils.go @@ -24,6 +24,12 @@ func On(event Event, callback func()) { OnKey(event, nil, callback) } +func OnEvents(events []Event, callback func()) { + for _, event := range events { + On(event, callback) + } +} + func OnClose(callback func()) { On(EventQuit, callback) On(EventTerminated, callback) diff --git a/internal/nodes/node.go b/internal/nodes/node.go index 75e0dc0..5808725 100644 --- a/internal/nodes/node.go +++ b/internal/nodes/node.go @@ -1056,6 +1056,9 @@ func (this *Node) reloadServer() { if err != nil { remotelogs.Error("NODE", "apply server config error: "+err.Error()) } + + // notify event + events.Notify(events.EventReloadSomeServers) } }