From 71e29b7556242025e690ccfff02b6930f1b0ad19 Mon Sep 17 00:00:00 2001 From: mkwcat Date: Tue, 7 May 2024 05:07:30 -0400 Subject: [PATCH] ServerBrowser: Save connection state on shutdown --- serverbrowser/main.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/serverbrowser/main.go b/serverbrowser/main.go index 94d6c2c..f66447d 100644 --- a/serverbrowser/main.go +++ b/serverbrowser/main.go @@ -2,6 +2,8 @@ package serverbrowser import ( "encoding/binary" + "encoding/gob" + "os" "wwfc/common" "wwfc/logging" @@ -35,9 +37,40 @@ var ( ) func StartServer(reload bool) { + if !reload { + return + } + + // Load connection state + file, err := os.Open("/state/sb_connections.gob") + if err != nil { + panic(err) + } + + decoder := gob.NewDecoder(file) + + err = decoder.Decode(&connBuffers) + file.Close() + + if err != nil { + panic(err) + } } func Shutdown() { + // Save connection state + file, err := os.OpenFile("/state/sb_connections.gob", os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + panic(err) + } + + encoder := gob.NewEncoder(file) + + err = encoder.Encode(connBuffers) + file.Close() + if err != nil { + panic(err) + } } func NewConnection(index uint64, address string) {