diff --git a/pkg/jsonrpc/json.go b/pkg/jsonrpc/json.go index 4ab13f3d9e1837893b9f51da14e20da054a50c40..40055ccfe349d3d3022ed6e082b46e4bb9fadfa7 100644 --- a/pkg/jsonrpc/json.go +++ b/pkg/jsonrpc/json.go @@ -17,8 +17,6 @@ func NewNull() json.RawMessage { return json.RawMessage("null") } -type ExtraFields map[string]json.RawMessage - // A value of this type can a JSON-RPC request, notification, successful response or // error response. Which one it is depends on the fields. type Message struct { @@ -28,8 +26,6 @@ type Message struct { Error error `json:"error,omitempty"` Result io.ReadCloser `json:"result,omitempty"` - - ExtraFields ExtraFields `json:"-"` } func NewStringReader(x string) io.ReadCloser { @@ -52,11 +48,6 @@ func MarshalMessage(m *Message, enc *jx.Encoder) (err error) { e.Str(m.Method) }) } - for k, v := range m.ExtraFields { - e.Field(k, func(e *jx.Encoder) { - e.Raw(v) - }) - } if m.Error != nil { e.Field("error", func(e *jx.Encoder) { EncodeError(e, m.Error) @@ -91,17 +82,6 @@ func MarshalMessage(m *Message, enc *jx.Encoder) (err error) { func UnmarshalMessage(m *Message, dec *jx.Decoder) error { err := dec.Obj(func(d *jx.Decoder, key string) (err error) { switch key { - default: - val, err := d.Raw() - if err != nil { - return err - } - buf := bytes.NewBuffer(make(json.RawMessage, len(val))) - buf.Write(val) - if m.ExtraFields == nil { - m.ExtraFields = ExtraFields{} - } - m.ExtraFields[key] = buf.Bytes() case "jsonrpc": value, err := d.Str() if err != nil { @@ -216,31 +196,6 @@ func IsBatchMessage(raw json.RawMessage) bool { return false } -func (m ExtraFields) SetExtraField(name string, v any) (err error) { - switch name { - case "id", "jsonrpc", "method", "params", "result", "error": - return fmt.Errorf("%w: %q", ErrIllegalExtraField, name) - } - if v == nil { - delete(m, name) - } - val, err := json.Marshal(v) - if err != nil { - return err - } - m[name] = val - return nil -} -func (m ExtraFields) Clear() { - for k := range m { - delete(m, k) - } -} - -func (m *Message) SetExtraField(name string, v any) error { - return m.ExtraFields.SetExtraField(name, v) -} - // parseMessage parses raw bytes as a (batch of) JSON-RPC message(s). There are no error // checks in this function because the raw message has already been syntax-checked when it // is called. Any non-JSON-RPC messages in the input return the zero value of diff --git a/pkg/jsonrpc/reqresp.go b/pkg/jsonrpc/reqresp.go index 4358225068900d3a53d847d7beef4cad2ed7be8e..ebff64f8ef9de09649d1186568044360615740b8 100644 --- a/pkg/jsonrpc/reqresp.go +++ b/pkg/jsonrpc/reqresp.go @@ -10,7 +10,6 @@ import ( type ResponseWriter interface { Send(v any, err error) error Notify(method string, v any) error - ExtraFields() ExtraFields } // BatchElem is an element in a batch request. @@ -119,7 +118,6 @@ func (r *Request) WithContext(ctx context.Context) *Request { r2.Method = r.Method r2.Params = r.Params r2.Error = r.Error - r2.ExtraFields = r.ExtraFields r2.Peer = r.Peer return r2 } diff --git a/pkg/server/responsewriter.go b/pkg/server/responsewriter.go index 4a9df24143d293e3329588b8388b70383e22c76c..1e2bc06a123befd8d98f9180050ef654af4ed48f 100644 --- a/pkg/server/responsewriter.go +++ b/pkg/server/responsewriter.go @@ -38,9 +38,8 @@ func (c *streamingRespWriter) Send(v any, e error) (err error) { } c.sendCalled = true ce := &callEnv{ - err: c.err, - id: c.msg.ID, - extrafields: c.msg.ExtraFields, + err: c.err, + id: c.msg.ID, } // only override error if not already set if ce.err == nil { @@ -67,10 +66,6 @@ func (c *streamingRespWriter) Send(v any, e error) (err error) { return nil } -func (c *streamingRespWriter) ExtraFields() jsonrpc.ExtraFields { - return c.msg.ExtraFields -} - func (c *streamingRespWriter) Notify(method string, v any) error { err := c.cr.mu.Acquire(c.ctx, 1) if err != nil { @@ -80,7 +75,6 @@ func (c *streamingRespWriter) Notify(method string, v any) error { err = c.cr.notify(c.ctx, ¬ifyEnv{ method: method, dat: v, - extra: c.msg.ExtraFields, }) if err != nil { return err diff --git a/pkg/server/rw_batch.go b/pkg/server/rw_batch.go index e3073bf8417b4d8763600f93b28c7eed5cb3bfeb..e102594ca7423aa43b80a84b84eea7974ed32b99 100644 --- a/pkg/server/rw_batch.go +++ b/pkg/server/rw_batch.go @@ -61,10 +61,6 @@ func (c *batchingRespWriter) Send(v any, e error) (err error) { return nil } -func (c *batchingRespWriter) ExtraFields() jsonrpc.ExtraFields { - return c.msg.ExtraFields -} - func (c *batchingRespWriter) Notify(method string, v any) error { err := c.cr.mu.Acquire(c.ctx, 1) if err != nil { @@ -74,7 +70,6 @@ func (c *batchingRespWriter) Notify(method string, v any) error { err = c.cr.notify(c.ctx, ¬ifyEnv{ method: method, dat: v, - extra: c.msg.ExtraFields, }) if err != nil { return err diff --git a/pkg/server/server.go b/pkg/server/server.go index 350bce9a94ab2689760a2529135f64a474174103..890dc5013212ce682b1af4b091e47478c95d7ae5 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -132,7 +132,6 @@ func produceOutputMessage(inputMessage *jsonrpc.Message) (out *jsonrpc.Message, err = jsonrpc.NewInvalidRequestError("invalid request") } out = inputMessage - out.ExtraFields = jsonrpc.ExtraFields{} out.Error = nil // zero length method is always invalid request if len(out.Method) == 0 { @@ -238,10 +237,9 @@ func (s *Server) serveBatch(ctx context.Context, } for i, v := range batchResults { err = r.send(ctx, &callEnv{ - v: v.payload, - err: v.err, - id: v.msg.ID, - extrafields: v.msg.ExtraFields, + v: v.payload, + err: v.err, + id: v.msg.ID, }) if err != nil { return err @@ -285,10 +283,9 @@ type callResponder struct { } type callEnv struct { - v any - err error - id *jsonrpc.ID - extrafields jsonrpc.ExtraFields + v any + err error + id *jsonrpc.ID } func (c *callResponder) send(ctx context.Context, env *callEnv) (err error) { @@ -305,13 +302,6 @@ func (c *callResponder) send(ctx context.Context, env *callEnv) (err error) { e.Raw(env.id.RawMessage()) }) } - if env.extrafields != nil { - for k, v := range env.extrafields { - e.Field(k, func(e *jx.Encoder) { - e.Raw(v) - }) - } - } if env.err != nil { e.Field("error", func(e *jx.Encoder) { jsonrpc.EncodeError(e, env.err) @@ -359,7 +349,6 @@ func (c *callResponder) send(ctx context.Context, env *callEnv) (err error) { type notifyEnv struct { method string dat any - extra jsonrpc.ExtraFields } func (c *callResponder) notify(ctx context.Context, env *notifyEnv) (err error) { @@ -373,7 +362,6 @@ func (c *callResponder) notify(ctx context.Context, env *notifyEnv) (err error) } else { msg.Params = buf.Bytes() } - msg.ExtraFields = env.extra // add the method msg.Method = env.method enc := jx.GetEncoder()