From 451ac1183e3d4d9910fc9dcd47d365ddb4fc9589 Mon Sep 17 00:00:00 2001 From: paulwe Date: Tue, 5 Mar 2024 21:21:03 -0800 Subject: [PATCH 1/3] allow multirpc services to ignore requests --- pkg/server/rpc.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/server/rpc.go b/pkg/server/rpc.go index 1e766ad..b7ec218 100644 --- a/pkg/server/rpc.go +++ b/pkg/server/rpc.go @@ -186,6 +186,9 @@ func (h *rpcHandlerImpl[RequestType, ResponseType]) handleRequest( // call handler function and return response response, err := h.handler(ctx, req) + if ir.Multi && !response.ProtoReflect().IsValid() && err == nil { + return nil + } return h.sendResponse(s, ctx, ir, response, err) } From fdc101f3cadfe06d79741af53c12813af2815732 Mon Sep 17 00:00:00 2001 From: paulwe Date: Tue, 5 Mar 2024 21:31:17 -0800 Subject: [PATCH 2/3] cleanup --- pkg/server/rpc.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/server/rpc.go b/pkg/server/rpc.go index b7ec218..70b9f19 100644 --- a/pkg/server/rpc.go +++ b/pkg/server/rpc.go @@ -186,9 +186,6 @@ func (h *rpcHandlerImpl[RequestType, ResponseType]) handleRequest( // call handler function and return response response, err := h.handler(ctx, req) - if ir.Multi && !response.ProtoReflect().IsValid() && err == nil { - return nil - } return h.sendResponse(s, ctx, ir, response, err) } @@ -277,6 +274,9 @@ func (h *rpcHandlerImpl[RequestType, ResponseType]) sendResponse( } else { res.RawResponse = b } + } else if ir.Multi { + // ignore nil responses from multirpc methods + return nil } return s.bus.Publish(ctx, info.GetResponseChannel(s.Name, ir.ClientId), res) From fd495fcc306a292f754f51ea52e8fe435bb83292 Mon Sep 17 00:00:00 2001 From: paulwe Date: Tue, 5 Mar 2024 21:42:51 -0800 Subject: [PATCH 3/3] nil interface --- pkg/server/rpc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/server/rpc.go b/pkg/server/rpc.go index 70b9f19..78f8490 100644 --- a/pkg/server/rpc.go +++ b/pkg/server/rpc.go @@ -266,7 +266,7 @@ func (h *rpcHandlerImpl[RequestType, ResponseType]) sendResponse( res.Error = err.Error() res.Code = string(psrpc.Unknown) } - } else if response != nil { + } else if response.ProtoReflect().IsValid() { b, err := bus.SerializePayload(response) if err != nil { res.Error = err.Error()