mirror of
https://github.com/ergochat/ergo.git
synced 2025-12-20 02:00:11 -08:00
factor out some shared code
This commit is contained in:
parent
657ce0f1a4
commit
e0e4791f72
5 changed files with 66 additions and 52 deletions
|
|
@ -12,7 +12,6 @@ import (
|
|||
_ "net/http/pprof"
|
||||
"os"
|
||||
"os/signal"
|
||||
"runtime/debug"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
|
|
@ -245,14 +244,12 @@ func (server *Server) checkTorLimits() (banned bool, message string) {
|
|||
|
||||
func (server *Server) handleAlwaysOnExpirations() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
server.logger.Error("internal",
|
||||
fmt.Sprintf("Panic in always-on cleanup: %v\n%s", r, debug.Stack()))
|
||||
}
|
||||
// either way, reschedule
|
||||
// reschedule whether or not there was a panic
|
||||
time.AfterFunc(alwaysOnExpirationPollPeriod, server.handleAlwaysOnExpirations)
|
||||
}()
|
||||
|
||||
defer server.HandlePanic()
|
||||
|
||||
config := server.Config()
|
||||
deadline := time.Duration(config.Accounts.Multiclient.AlwaysOnExpiration)
|
||||
if deadline == 0 {
|
||||
|
|
@ -514,16 +511,7 @@ func (client *Client) getWhoisOf(target *Client, hasPrivs bool, rb *ResponseBuff
|
|||
// rehash reloads the config and applies the changes from the config file.
|
||||
func (server *Server) rehash() error {
|
||||
// #1570; this needs its own panic handling because it can be invoked via SIGHUP
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
if server.Config().Debug.recoverFromErrors {
|
||||
server.logger.Error("internal",
|
||||
fmt.Sprintf("Panic during rehash: %v\n%s", r, debug.Stack()))
|
||||
} else {
|
||||
panic(r)
|
||||
}
|
||||
}
|
||||
}()
|
||||
defer server.HandlePanic()
|
||||
|
||||
server.logger.Info("server", "Attempting rehash")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue