From 2bed11bf96b81ef684b9e37de79b63d5adb60bf4 Mon Sep 17 00:00:00 2001 From: Garet Halliday <me@garet.holiday> Date: Fri, 8 Dec 2023 14:13:55 -0600 Subject: [PATCH] idreply when closed --- contrib/codecs/websocket/client.go | 5 ++++- contrib/extension/subscription/client_test.go | 2 +- pkg/clientutil/idreply.go | 6 +++--- pkg/jrpctest/suites.go | 12 ------------ 4 files changed, 8 insertions(+), 17 deletions(-) diff --git a/contrib/codecs/websocket/client.go b/contrib/codecs/websocket/client.go index 7aa5321..4847ada 100644 --- a/contrib/codecs/websocket/client.go +++ b/contrib/codecs/websocket/client.go @@ -29,8 +29,11 @@ func newClient(conn *websocket.Conn) (*Client, error) { } func (c *Client) Close() error { + if err := c.Client.Close(); err != nil { + return err + } if err := c.conn.Close(websocket.StatusNormalClosure, ""); err != nil { return err } - return c.Client.Close() + return nil } diff --git a/contrib/extension/subscription/client_test.go b/contrib/extension/subscription/client_test.go index b63d6e2..2350506 100644 --- a/contrib/extension/subscription/client_test.go +++ b/contrib/extension/subscription/client_test.go @@ -173,7 +173,7 @@ func TestCloseClient(t *testing.T) { } go func() { - if err := cl.Close(); err != nil { + if err = cl.Close(); err != nil { t.Error(err) } }() diff --git a/pkg/clientutil/idreply.go b/pkg/clientutil/idreply.go index 1ff7eca..167ce52 100644 --- a/pkg/clientutil/idreply.go +++ b/pkg/clientutil/idreply.go @@ -13,8 +13,8 @@ import ( type IdReply struct { id atomic.Int64 - amClosed atomic.Bool - closed chan struct{} + close atomic.Bool + closed chan struct{} chs map[string]chan msgOrError mu sync.Mutex @@ -109,7 +109,7 @@ func (i *IdReply) Closed() <-chan struct{} { } func (i *IdReply) Close() error { - if i.amClosed.Swap(true) { + if i.close.Swap(true) { return net.ErrClosed } close(i.closed) diff --git a/pkg/jrpctest/suites.go b/pkg/jrpctest/suites.go index c92e6a0..b175b6f 100644 --- a/pkg/jrpctest/suites.go +++ b/pkg/jrpctest/suites.go @@ -3,9 +3,7 @@ package jrpctest import ( "context" "embed" - "errors" "math/rand" - "net" "reflect" "sync" "testing" @@ -190,16 +188,6 @@ func RunBasicTestSuite(t *testing.T, args BasicTestSuiteArgs) { wg.Wait() }) - makeTest("close", func(t *testing.T, server *server.Server, client jsonrpc.Conn) { - go func() { - _ = client.Close() - }() - err := jsonrpc.CallInto(context.Background(), client, nil, "test_block") - if !errors.Is(err, net.ErrClosed) { - t.Errorf("expected close error but got %v", err) - } - }) - makeTest("", func(t *testing.T, server *server.Server, client jsonrpc.Conn) { }) } -- GitLab