good morning!!!!

Skip to content
Snippets Groups Projects
Commit 5c654045 authored by Taylor Gerring's avatar Taylor Gerring
Browse files

Omit replies for notification requests

When Id is missing, the client does not want a response
parent f7fdb4df
Branches
Tags
No related merge requests found
...@@ -87,7 +87,9 @@ func JSONRPC(pipe *xeth.XEth) http.Handler { ...@@ -87,7 +87,9 @@ func JSONRPC(pipe *xeth.XEth) http.Handler {
var reqSingle RpcRequest var reqSingle RpcRequest
if err := json.Unmarshal(body, &reqSingle); err == nil { if err := json.Unmarshal(body, &reqSingle); err == nil {
response := RpcResponse(api, &reqSingle) response := RpcResponse(api, &reqSingle)
if reqSingle.Id != nil {
send(w, &response) send(w, &response)
}
return return
} }
...@@ -96,11 +98,28 @@ func JSONRPC(pipe *xeth.XEth) http.Handler { ...@@ -96,11 +98,28 @@ func JSONRPC(pipe *xeth.XEth) http.Handler {
if err := json.Unmarshal(body, &reqBatch); err == nil { if err := json.Unmarshal(body, &reqBatch); err == nil {
// Build response batch // Build response batch
resBatch := make([]*interface{}, len(reqBatch)) resBatch := make([]*interface{}, len(reqBatch))
resCount := 0
for i, request := range reqBatch { for i, request := range reqBatch {
response := RpcResponse(api, &request) response := RpcResponse(api, &request)
// this leaves nil entries in the response batch for later removal
if request.Id != nil {
resBatch[i] = response resBatch[i] = response
resCount = resCount + 1
} }
send(w, resBatch) }
// make response omitting nil entries
respBatchComp := make([]*interface{}, resCount)
resCount = resCount - 1
for _, v := range resBatch {
if v != nil {
respBatchComp[resCount] = v
resCount = resCount - 1
}
}
send(w, respBatchComp)
return return
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment