aboutsummaryrefslogtreecommitdiff
path: root/hotline
diff options
context:
space:
mode:
Diffstat (limited to 'hotline')
-rw-r--r--hotline/server.go16
1 files changed, 16 insertions, 0 deletions
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)
+}