diff options
author | James Fargher <proglottis@gmail.com> | 2021-09-14 06:08:24 +0300 |
---|---|---|
committer | James Fargher <proglottis@gmail.com> | 2021-09-14 06:08:24 +0300 |
commit | 29b7edea2d34492f181d6cc6d501cc9ae50abe53 (patch) | |
tree | a05136595fa5a86597b8f5dcf24512196aa19ebc | |
parent | 8db16bc798c26ebfbf6daf9940b65be17af8fbe2 (diff) | |
parent | 61dd302d9a0172c2169172266d022fb1f858e159 (diff) |
Merge branch 'jv-sidechannel-remove-error' into 'master'
sidechannel: remove error return value
See merge request gitlab-org/gitaly!3859
-rw-r--r-- | internal/sidechannel/registry.go | 4 | ||||
-rw-r--r-- | internal/sidechannel/registry_test.go | 9 | ||||
-rw-r--r-- | internal/sidechannel/sidechannel.go | 10 | ||||
-rw-r--r-- | internal/sidechannel/sidechannel_test.go | 5 |
4 files changed, 9 insertions, 19 deletions
diff --git a/internal/sidechannel/registry.go b/internal/sidechannel/registry.go index 50726ab7e..32985a9a1 100644 --- a/internal/sidechannel/registry.go +++ b/internal/sidechannel/registry.go @@ -40,7 +40,7 @@ func NewRegistry() *Registry { // connection arrives, the callback function is executed with arrived // connection in a new goroutine. The caller receives execution result via // waiter.Wait(). -func (s *Registry) Register(callback func(net.Conn) error) (*Waiter, error) { +func (s *Registry) Register(callback func(net.Conn) error) *Waiter { s.mu.Lock() defer s.mu.Unlock() @@ -55,7 +55,7 @@ func (s *Registry) Register(callback func(net.Conn) error) (*Waiter, error) { go waiter.run() s.waiters[waiter.id] = waiter - return waiter, nil + return waiter } // receive looks into the registry for a waiter with the given ID. If diff --git a/internal/sidechannel/registry_test.go b/internal/sidechannel/registry_test.go index a0a4a8bf7..5b8217e70 100644 --- a/internal/sidechannel/registry_test.go +++ b/internal/sidechannel/registry_test.go @@ -17,11 +17,10 @@ func TestRegistry(t *testing.T) { t.Run("waiter removed from the registry right after connection received", func(t *testing.T) { triggerCallback := make(chan struct{}) - waiter, err := registry.Register(func(conn net.Conn) error { + waiter := registry.Register(func(conn net.Conn) error { <-triggerCallback return nil }) - require.NoError(t, err) defer waiter.Close() require.Equal(t, 1, registry.waiting()) @@ -46,11 +45,10 @@ func TestRegistry(t *testing.T) { wg.Add(1) go func(i int) { - waiter, err := registry.Register(func(conn net.Conn) error { + waiter := registry.Register(func(conn net.Conn) error { _, err := fmt.Fprintf(conn, "%d", i) return err }) - require.NoError(t, err) defer waiter.Close() require.NoError(t, registry.receive(waiter.id, client)) @@ -79,8 +77,7 @@ func TestRegistry(t *testing.T) { }) t.Run("pre-maturely close the waiter", func(t *testing.T) { - waiter, err := registry.Register(func(conn net.Conn) error { panic("never execute") }) - require.NoError(t, err) + waiter := registry.Register(func(conn net.Conn) error { panic("never execute") }) require.NoError(t, waiter.Close()) require.Equal(t, 0, registry.waiting()) }) diff --git a/internal/sidechannel/sidechannel.go b/internal/sidechannel/sidechannel.go index eb716b022..c133fcc6e 100644 --- a/internal/sidechannel/sidechannel.go +++ b/internal/sidechannel/sidechannel.go @@ -76,14 +76,10 @@ func OpenSidechannel(ctx context.Context) (_ net.Conn, err error) { // The caller is expected to establish the request with the returned context. The // callback is executed automatically when the sidechannel connection arrives. // The result is pushed to the error channel of the returned waiter. -func RegisterSidechannel(ctx context.Context, registry *Registry, callback func(net.Conn) error) (context.Context, *Waiter, error) { - waiter, err := registry.Register(callback) - if err != nil { - return ctx, nil, err - } - +func RegisterSidechannel(ctx context.Context, registry *Registry, callback func(net.Conn) error) (context.Context, *Waiter) { + waiter := registry.Register(callback) ctxOut := metadata.AppendToOutgoingContext(ctx, sidechannelMetadataKey, fmt.Sprintf("%d", waiter.id)) - return ctxOut, waiter, nil + return ctxOut, waiter } // ServerHandshaker implements the server-side sidechannel handshake. diff --git a/internal/sidechannel/sidechannel_test.go b/internal/sidechannel/sidechannel_test.go index 20fcd1d80..bfcd4fa42 100644 --- a/internal/sidechannel/sidechannel_test.go +++ b/internal/sidechannel/sidechannel_test.go @@ -191,11 +191,8 @@ func dial(t *testing.T, addr string) (*grpc.ClientConn, *Registry) { func call(ctx context.Context, conn *grpc.ClientConn, registry *Registry, handler func(net.Conn) error) error { client := healthpb.NewHealthClient(conn) - ctxOut, waiter, err := RegisterSidechannel(ctx, registry, handler) + ctxOut, waiter := RegisterSidechannel(ctx, registry, handler) defer waiter.Close() - if err != nil { - return err - } if _, err := client.Check(ctxOut, &healthpb.HealthCheckRequest{}); err != nil { return err |