diff --git a/client/client.go b/client/client.go index cb061c8322e8696a6dd65ee6db7137a71640af99..70bce4b24d95df77a6387320da2bc91d11815bf8 100644 --- a/client/client.go +++ b/client/client.go @@ -417,9 +417,11 @@ func (c *Client) readUDPWriteTCP() { _, err = conn.Write(tcpBuffer) if err != nil { c.error("readUDPWriteTCP: Write err from %v to %v: %v", conn.LocalAddr(), conn.RemoteAddr(), err) - time.Sleep(reconnectTime) - config := c.obfs4Conns[0].config - c.connectObfs4(&config, 20) + cancelled := cancellableSleep(c.ctx, reconnectTime) + if !cancelled { + config := c.obfs4Conns[0].config + c.connectObfs4(&config, 20) + } } } }