From 76983332b3d67920dd8a3daaf854569276e6c284 Mon Sep 17 00:00:00 2001 From: a <a@tuxpa.in> Date: Thu, 20 Jul 2023 16:30:05 -0500 Subject: [PATCH] clean --- contrib/jmux/mux.go | 3 --- pkg/codec/json.go | 19 +++++++++---------- pkg/jrpctest/services.go | 2 +- pkg/server/server.go | 6 ++---- 4 files changed, 12 insertions(+), 18 deletions(-) diff --git a/contrib/jmux/mux.go b/contrib/jmux/mux.go index 14c214b..4102684 100644 --- a/contrib/jmux/mux.go +++ b/contrib/jmux/mux.go @@ -86,9 +86,6 @@ func (m *Mux) RegisterFunc(name string, rcvr any) error { return fmt.Errorf("no service name for type %s", rcvrVal.Type().String()) } cb := argreflect.NewCallback(reflect.ValueOf(nil), rcvrVal) - if cb == nil { - return fmt.Errorf("invalid function registeration for %s", name) - } m.Mount(name, cb) return nil } diff --git a/pkg/codec/json.go b/pkg/codec/json.go index 757cbd6..bbab047 100644 --- a/pkg/codec/json.go +++ b/pkg/codec/json.go @@ -79,18 +79,18 @@ func MarshalMessage(m *Message, enc *jx.Encoder) error { } func UnmarshalMessage(m *Message, dec *jx.Decoder) error { - err := dec.Obj(func(d *jx.Decoder, key string) error { + err := dec.Obj(func(d *jx.Decoder, key string) (err error) { switch key { default: val, err := d.Raw() if err != nil { return err } - xs := make(json.RawMessage, len(val)) - copy(xs, val) + buf := bytes.NewBuffer(make(json.RawMessage, len(val))) + buf.Write(val) m.ExtraFields = append(m.ExtraFields, RequestField{ Name: key, - Value: xs, + Value: buf.Bytes(), }) case "jsonrpc": value, err := d.Str() @@ -112,11 +112,7 @@ func UnmarshalMessage(m *Message, dec *jx.Decoder) error { return err } case "method": - value, err := d.Str() - if err != nil { - return err - } - m.Method = value + m.Method, err = d.Str() case "params": val, err := d.Raw() if err != nil { @@ -152,7 +148,7 @@ func UnmarshalMessage(m *Message, dec *jx.Decoder) error { return err } } - return nil + return err }) if err != nil { return err @@ -269,6 +265,9 @@ func ReadMessage(dec *jx.Decoder) ([]*Message, bool) { msg := new(Message) //err := UnmarshalMessage(msg, d) raw, err := d.Raw() + if err != nil { + raw = []byte{} + } err = json.Unmarshal(raw, msg) if err != nil { msg = nil diff --git a/pkg/jrpctest/services.go b/pkg/jrpctest/services.go index eab9194..bdc7d54 100644 --- a/pkg/jrpctest/services.go +++ b/pkg/jrpctest/services.go @@ -82,7 +82,7 @@ func (s *testService) CallMeBack(ctx context.Context, method string, args []any) return nil, errors.New("no client") } var result any - err := c.Do(nil, &result, method, args) + err := c.Do(context.Background(), &result, method, args) return result, err } diff --git a/pkg/server/server.go b/pkg/server/server.go index eb83e0c..9200f06 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -164,10 +164,8 @@ func (s *Server) ServeCodec(pctx context.Context, remote codec.ReaderWriter) { }() go func() { - select { - case <-ctx.Done(): - remote.Close() - } + <-ctx.Done() + remote.Close() }() for { -- GitLab