X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/blobdiff_plain/fd740bc499ebc6d3a381479316f74cdc736d02de..b6e3be945680d017874967ae72ef86ee4235dcc2:/hotline/server.go diff --git a/hotline/server.go b/hotline/server.go index 58a9209..cfdb6b3 100644 --- a/hotline/server.go +++ b/hotline/server.go @@ -13,6 +13,7 @@ import ( "log" "log/slog" "net" + "os" "strings" "sync" "time" @@ -586,3 +587,18 @@ func (s *Server) handleFileTransfer(ctx context.Context, rwc io.ReadWriter) erro } return nil } + +func (s *Server) SendAll(t TranType, fields ...Field) { + for _, c := range s.ClientMgr.List() { + s.outbox <- NewTransaction(t, c.ID, fields...) + } +} + +func (s *Server) Shutdown(msg []byte) { + s.Logger.Info("Shutdown signal received") + s.SendAll(TranDisconnectMsg, NewField(FieldData, msg)) + + time.Sleep(3 * time.Second) + + os.Exit(0) +}