From 7307bcfde6b66add158797eb59b25cf5a0700319 Mon Sep 17 00:00:00 2001 From: Jacek Sieka Date: Fri, 27 Dec 2024 13:44:57 +0100 Subject: [PATCH] log json-rpc error message, remove redundant EH `route` does not raise any more.. --- json_rpc/servers/httpserver.nim | 2 +- json_rpc/servers/socketserver.nim | 9 ++++++--- json_rpc/servers/websocketserver.nim | 22 +++++++++------------- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/json_rpc/servers/httpserver.nim b/json_rpc/servers/httpserver.nim index 6bf9bc5..68acc90 100644 --- a/json_rpc/servers/httpserver.nim +++ b/json_rpc/servers/httpserver.nim @@ -81,7 +81,7 @@ proc serveHTTP*(rpcServer: RpcHttpHandler, request: HttpRequestRef): except CancelledError as exc: raise exc except CatchableError as exc: - debug "Internal error while processing JSON-RPC call" + debug "Internal error while processing JSON-RPC call", msg=exc.msg defaultResponse(exc) proc processClientRpc(rpcServer: RpcHttpServer): HttpProcessCallback2 = diff --git a/json_rpc/servers/socketserver.nim b/json_rpc/servers/socketserver.nim index 34c6597..b218fee 100644 --- a/json_rpc/servers/socketserver.nim +++ b/json_rpc/servers/socketserver.nim @@ -41,9 +41,12 @@ proc processClient(server: StreamServer, transport: StreamTransport) {.async: (r let res = await rpc.route(req) discard await transport.write(res & "\r\n") except TransportError as ex: - error "Transport closed during processing client", msg=ex.msg - except CatchableError as ex: - error "Error occured during processing client", msg=ex.msg + error "Transport closed during processing client", + address = transport.remoteAddress(), + msg=ex.msg + except CancelledError: + error "JSON-RPC request processing cancelled", + address = transport.remoteAddress() # Utility functions for setting up servers using stream transport addresses diff --git a/json_rpc/servers/websocketserver.nim b/json_rpc/servers/websocketserver.nim index f8cf1d8..2530283 100644 --- a/json_rpc/servers/websocketserver.nim +++ b/json_rpc/servers/websocketserver.nim @@ -45,13 +45,16 @@ proc serveHTTP*(rpc: RpcWebSocketHandler, request: HttpRequest) let server = rpc.wsserver let ws = await server.handleRequest(request) if ws.readyState != ReadyState.Open: - error "Failed to open websocket connection" + error "Failed to open websocket connection", + address = $request.uri return trace "Websocket handshake completed" while ws.readyState != ReadyState.Closed: let req = await ws.recvMsg() - debug "Received JSON-RPC request", len = req.len + debug "Received JSON-RPC request", + address = $request.uri, + len = req.len if ws.readyState == ReadyState.Closed: # if session already terminated by peer, @@ -64,27 +67,20 @@ proc serveHTTP*(rpc: RpcWebSocketHandler, request: HttpRequest) ) break - let data = try: - await rpc.route(req) - except CatchableError as exc: - debug "Internal error, while processing RPC call", - address = $request.uri - await ws.close( - reason = "Internal error, while processing RPC call: " & exc.msg - ) - break + let data = await rpc.route(req) trace "RPC result has been sent", address = $request.uri await ws.send(data) except WebSocketError as exc: - error "WebSocket error:", exception = exc.msg + error "WebSocket error:", + address = $request.uri, msg = exc.msg except CancelledError as exc: raise exc except CatchableError as exc: - debug "Something error", msg=exc.msg + debug "Internal error while processing JSON-RPC call", msg=exc.msg proc handleRequest(rpc: RpcWebSocketServer, request: HttpRequest) {.async: (raises: [CancelledError]).} =