make error recovery configurable

This commit is contained in:
Shivaram Lingamneni 2017-10-26 04:19:01 -04:00
parent 80968d000f
commit 7b58bf76ef
5 changed files with 28 additions and 8 deletions

View file

@ -185,9 +185,11 @@ func (client *Client) run() {
var msg ircmsg.IrcMessage
defer func() {
if r := recover(); r != nil {
client.server.logger.Error("internal",
fmt.Sprintf("Client caused panic, disconnecting: %v\n%s", r, debug.Stack()))
if client.server.RecoverFromErrors() {
if r := recover(); r != nil {
client.server.logger.Error("internal",
fmt.Sprintf("Client caused panic, disconnecting: %v\n%s", r, debug.Stack()))
}
}
// ensure client connection gets closed
client.destroy()