From ca51529b81cc604bc5b57dfdbf3f67bdf61f7d5a Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Fri, 12 Feb 2021 12:04:16 -0800 Subject: [PATCH] derp/derphttp: return nicer errors from Recv on Close --- derp/derphttp/derphttp_client.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/derp/derphttp/derphttp_client.go b/derp/derphttp/derphttp_client.go index 87f11eca6..0c523f07e 100644 --- a/derp/derphttp/derphttp_client.go +++ b/derp/derphttp/derphttp_client.go @@ -709,10 +709,19 @@ func (c *Client) RecvDetail() (m derp.ReceivedMessage, connGen int, err error) { m, err = client.Recv() if err != nil { c.closeForReconnect(client) + if c.isClosed() { + err = ErrClientClosed + } } return m, connGen, err } +func (c *Client) isClosed() bool { + c.mu.Lock() + defer c.mu.Unlock() + return c.closed +} + // Close closes the client. It will not automatically reconnect after // being closed. func (c *Client) Close() error {