rpc: improve error codes for internal server errors (#25678)
This changes the error code returned by the RPC server in certain situations: - handler panic: code -32603 - result marshaling error: code -32603 - attempt to subscribe via HTTP: code -32001 In all of the above cases, the server previously returned the default error code -32000. Co-authored-by: Nicholas Zhao <nicholas.zhao@gmail.com> Co-authored-by: Felix Lange <fjl@twurst.com>
This commit is contained in:
co-authored by
Nicholas Zhao
Felix Lange
parent
06151eb581
commit
610cf02c4a
+4
-2
@@ -48,7 +48,6 @@ import (
|
||||
// if err := op.wait(...); err != nil {
|
||||
// h.removeRequestOp(op) // timeout, etc.
|
||||
// }
|
||||
//
|
||||
type handler struct {
|
||||
reg *serviceRegistry
|
||||
unsubscribeCb *callback
|
||||
@@ -354,7 +353,10 @@ func (h *handler) handleCall(cp *callProc, msg *jsonrpcMessage) *jsonrpcMessage
|
||||
// handleSubscribe processes *_subscribe method calls.
|
||||
func (h *handler) handleSubscribe(cp *callProc, msg *jsonrpcMessage) *jsonrpcMessage {
|
||||
if !h.allowSubscribe {
|
||||
return msg.errorResponse(ErrNotificationsUnsupported)
|
||||
return msg.errorResponse(&internalServerError{
|
||||
code: errcodeNotificationsUnsupported,
|
||||
message: ErrNotificationsUnsupported.Error(),
|
||||
})
|
||||
}
|
||||
|
||||
// Subscription method name is first argument.
|
||||
|
||||
Reference in New Issue
Block a user