+ go func() {
+ for {
+ sig := <-sigChan
+ switch sig {
+ case syscall.SIGHUP:
+ slogger.Info("SIGHUP received. Reloading configuration.")
+
+ if err := srv.MessageBoard.(*mobius.FlatNews).Reload(); err != nil {
+ slogger.Error("Error reloading news", "err", err)
+ }
+
+ if err := srv.BanList.(*mobius.BanFile).Load(); err != nil {
+ slogger.Error("Error reloading ban list", "err", err)
+ }
+
+ if err := srv.ThreadedNewsMgr.(*mobius.ThreadedNewsYAML).Load(); err != nil {
+ slogger.Error("Error reloading threaded news list", "err", err)
+ }
+ default:
+ signal.Stop(sigChan)
+ cancel()
+ os.Exit(0)
+ }
+
+ }
+ }()
+
+ slogger.Info("Hotline server started",
+ "version", version,
+ "API port", fmt.Sprintf("%s:%v", *netInterface, *basePort),
+ "Transfer port", fmt.Sprintf("%s:%v", *netInterface, *basePort+1),
+ )
+