|
@@ -109,6 +109,7 @@ type Server struct {
|
109
|
109
|
operclasses map[string]OperClass
|
110
|
110
|
password []byte
|
111
|
111
|
passwords *passwd.SaltedManager
|
|
112
|
+ recoverFromErrors bool
|
112
|
113
|
registeredChannels map[string]*RegisteredChannel
|
113
|
114
|
registeredChannelsMutex sync.RWMutex
|
114
|
115
|
rehashMutex sync.Mutex
|
|
@@ -1250,21 +1251,23 @@ func (server *Server) applyConfig(config *Config, initial bool) error {
|
1250
|
1251
|
server.name = config.Server.Name
|
1251
|
1252
|
server.nameCasefolded = casefoldedName
|
1252
|
1253
|
}
|
1253
|
|
- server.networkName = config.Network.Name
|
1254
|
1254
|
|
1255
|
1255
|
server.configurableStateMutex.Lock()
|
|
1256
|
+ server.networkName = config.Network.Name
|
1256
|
1257
|
if config.Server.Password != "" {
|
1257
|
1258
|
server.password = config.Server.PasswordBytes()
|
1258
|
1259
|
} else {
|
1259
|
1260
|
server.password = nil
|
1260
|
1261
|
}
|
1261
|
|
- server.configurableStateMutex.Unlock()
|
1262
|
|
-
|
1263
|
1262
|
// apply new WebIRC command restrictions
|
1264
|
1263
|
server.webirc = config.Server.WebIRC
|
1265
|
|
-
|
1266
|
1264
|
// apply new PROXY command restrictions
|
1267
|
1265
|
server.proxyAllowedFrom = config.Server.ProxyAllowedFrom
|
|
1266
|
+ server.recoverFromErrors = true
|
|
1267
|
+ if config.Debug.RecoverFromErrors != nil {
|
|
1268
|
+ server.recoverFromErrors = *config.Debug.RecoverFromErrors
|
|
1269
|
+ }
|
|
1270
|
+ server.configurableStateMutex.Unlock()
|
1268
|
1271
|
|
1269
|
1272
|
err = server.connectionLimiter.ApplyConfig(config.Server.ConnectionLimiter)
|
1270
|
1273
|
if err != nil {
|