diff --git a/socketserver/cmd/ffzsocketserver/socketserver.go b/socketserver/cmd/ffzsocketserver/socketserver.go index f8bf8c19..a7e1b9f3 100644 --- a/socketserver/cmd/ffzsocketserver/socketserver.go +++ b/socketserver/cmd/ffzsocketserver/socketserver.go @@ -48,12 +48,13 @@ func main() { if err != nil { log.Fatal("Could not create logfile: ", err) } - log.SetOutput(logFile) server.SetupServerAndHandle(conf, nil) go commandLineConsole() + log.SetOutput(logFile) + if conf.UseSSL { err = httpServer.ListenAndServeTLS(conf.SSLCertificateFile, conf.SSLKeyFile) } else { diff --git a/socketserver/internal/server/backend.go b/socketserver/internal/server/backend.go index 40ebfcf9..6af4d068 100644 --- a/socketserver/internal/server/backend.go +++ b/socketserver/internal/server/backend.go @@ -26,6 +26,7 @@ var responseCache *cache.Cache var getBacklogUrl string var postStatisticsUrl string var addTopicUrl string +var announceStartupUrl string var backendSharedKey [32]byte var serverId int @@ -43,6 +44,7 @@ func SetupBackend(config *ConfigFile) { getBacklogUrl = fmt.Sprintf("%s/backlog", backendUrl) postStatisticsUrl = fmt.Sprintf("%s/stats", backendUrl) addTopicUrl = fmt.Sprintf("%s/topics", backendUrl) + announceStartupUrl = fmt.Sprintf("%s/startup", backendUrl) messageBufferPool.New = New4KByteBuffer diff --git a/socketserver/internal/server/handlecore.go b/socketserver/internal/server/handlecore.go index 21b4c6d8..526111bb 100644 --- a/socketserver/internal/server/handlecore.go +++ b/socketserver/internal/server/handlecore.go @@ -9,6 +9,7 @@ import ( "io/ioutil" "log" "net/http" + "net/url" "strconv" "strings" "sync" @@ -92,7 +93,7 @@ func SetupServerAndHandle(config *ConfigFile, serveMux *http.ServeMux) { bannerBytes, err := ioutil.ReadFile("index.html") if err != nil { - log.Fatal("Could not open index.html", err) + log.Fatalln("Could not open index.html:", err) } BannerHTML = bannerBytes @@ -101,6 +102,19 @@ func SetupServerAndHandle(config *ConfigFile, serveMux *http.ServeMux) { serveMux.HandleFunc("/dump_backlog", HBackendDumpBacklog) serveMux.HandleFunc("/update_and_pub", HBackendUpdateAndPublish) + announceForm, err := SealRequest(url.Values{ + "startup": []string{"1"}, + }) + if err != nil { + log.Fatalln("Unable to seal requests:", err) + } + resp, err := backendHttpClient.PostForm(announceStartupUrl, announceForm) + if err != nil { + log.Println(err) + } else { + resp.Body.Close() + } + go pubsubJanitor() go backlogJanitor() go authorizationJanitor()