Don't log message as string twice in case of errors.

This commit is contained in:
Joachim Bauch 2022-07-12 13:31:40 +02:00
parent f0eb80b6fd
commit 532587eb9f
No known key found for this signature in database
GPG key ID: 77C1D22D53E15F02

View file

@ -80,44 +80,36 @@ func checkUnexpectedClose(err error) error {
return nil return nil
} }
func toJsonString(o interface{}) string {
if s, err := json.Marshal(o); err != nil {
panic(err)
} else {
return string(s)
}
}
func checkMessageType(message *ServerMessage, expectedType string) error { func checkMessageType(message *ServerMessage, expectedType string) error {
if message == nil { if message == nil {
return ErrNoMessageReceived return ErrNoMessageReceived
} }
if message.Type != expectedType { if message.Type != expectedType {
return fmt.Errorf("Expected \"%s\" message, got %+v (%s)", expectedType, message, toJsonString(message)) return fmt.Errorf("Expected \"%s\" message, got %+v", expectedType, message)
} }
switch message.Type { switch message.Type {
case "hello": case "hello":
if message.Hello == nil { if message.Hello == nil {
return fmt.Errorf("Expected \"%s\" message, got %+v (%s)", expectedType, message, toJsonString(message)) return fmt.Errorf("Expected \"%s\" message, got %+v", expectedType, message)
} }
case "message": case "message":
if message.Message == nil { if message.Message == nil {
return fmt.Errorf("Expected \"%s\" message, got %+v (%s)", expectedType, message, toJsonString(message)) return fmt.Errorf("Expected \"%s\" message, got %+v", expectedType, message)
} else if message.Message.Data == nil || len(*message.Message.Data) == 0 { } else if message.Message.Data == nil || len(*message.Message.Data) == 0 {
return fmt.Errorf("Received message without data") return fmt.Errorf("Received message without data")
} }
case "room": case "room":
if message.Room == nil { if message.Room == nil {
return fmt.Errorf("Expected \"%s\" message, got %+v (%s)", expectedType, message, toJsonString(message)) return fmt.Errorf("Expected \"%s\" message, got %+v", expectedType, message)
} }
case "event": case "event":
if message.Event == nil { if message.Event == nil {
return fmt.Errorf("Expected \"%s\" message, got %+v (%s)", expectedType, message, toJsonString(message)) return fmt.Errorf("Expected \"%s\" message, got %+v", expectedType, message)
} }
case "transient": case "transient":
if message.TransientData == nil { if message.TransientData == nil {
return fmt.Errorf("Expected \"%s\" message, got %+v (%s)", expectedType, message, toJsonString(message)) return fmt.Errorf("Expected \"%s\" message, got %+v", expectedType, message)
} }
} }