Pārlūkot izejas kodu

always log the panic trace

tags/v0.10.1
Shivaram Lingamneni 6 gadus atpakaļ
vecāks
revīzija
6130e48a67
1 mainītis faili ar 7 papildinājumiem un 4 dzēšanām
  1. 7
    4
      irc/client.go

+ 7
- 4
irc/client.go Parādīt failu

@@ -185,10 +185,13 @@ func (client *Client) run() {
185 185
 	var msg ircmsg.IrcMessage
186 186
 
187 187
 	defer func() {
188
-		if client.server.RecoverFromErrors() {
189
-			if r := recover(); r != nil {
190
-				client.server.logger.Error("internal",
191
-					fmt.Sprintf("Client caused panic, disconnecting: %v\n%s", r, debug.Stack()))
188
+		if r := recover(); r != nil {
189
+			client.server.logger.Error("internal",
190
+				fmt.Sprintf("Client caused panic: %v\n%s", r, debug.Stack()))
191
+			if client.server.RecoverFromErrors() {
192
+				client.server.logger.Error("internal", "Disconnecting client and attempting to recover")
193
+			} else {
194
+				panic(r)
192 195
 			}
193 196
 		}
194 197
 		// ensure client connection gets closed

Notiek ielāde…
Atcelt
Saglabāt