From df289a8a409efa67c89d53ccba7c2e849666f1f5 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 24 Jun 2016 18:06:21 +0200 Subject: improved error responses on websocket control interface diff --git a/src/rhimportd/ctrlWebSocket.go b/src/rhimportd/ctrlWebSocket.go index 4dd43a7..edd4b9d 100644 --- a/src/rhimportd/ctrlWebSocket.go +++ b/src/rhimportd/ctrlWebSocket.go @@ -329,7 +329,6 @@ func webSocketHandler(conf *rhimport.Config, db *rddb.DBChan, sessions *rhimport t, r, err := ws.NextReader() if err != nil { rhdl.Println("WebSocket Client", ws.RemoteAddr(), "disconnected:", err) - // sendWebSocketErrorResponse(ws, http.StatusBadRequest, err.Error()) return } @@ -340,18 +339,20 @@ func webSocketHandler(conf *rhimport.Config, db *rddb.DBChan, sessions *rhimport if err == io.EOF { err = io.ErrUnexpectedEOF } - rhdl.Println("WebSocket Client", ws.RemoteAddr(), "disconnected:", err) - // sendWebSocketErrorResponse(ws, http.StatusBadRequest, err.Error()) + rhdl.Println("WebSocket Client", ws.RemoteAddr(), "request error:", err) + sendWebSocketErrorResponse(ws, http.StatusBadRequest, err.Error()) return - } else { - // rhdl.Printf("Websocket Client %s got: %+v", ws.RemoteAddr(), reqdata) - reqchan <- *reqdata } + // rhdl.Printf("Websocket Client %s got: %+v", ws.RemoteAddr(), reqdata) + reqchan <- *reqdata case websocket.BinaryMessage: data, err := ioutil.ReadAll(r) if err != nil { + if err == io.EOF { + err = io.ErrUnexpectedEOF + } rhdl.Println("WebSocket Client", ws.RemoteAddr(), "disconnected:", err) - // sendWebSocketErrorResponse(ws, http.StatusBadRequest, err.Error()) + sendWebSocketErrorResponse(ws, http.StatusInternalServerError, err.Error()) return } // rhdl.Printf("WebSocket Client %s: got binary message (%d bytes)", ws.RemoteAddr(), len(data)) -- cgit v0.10.2