From 77cb607f01980ef2a6493a1bd41e23e42cbc7012 Mon Sep 17 00:00:00 2001
From: cyBerta <cyberta@riseup.net>
Date: Sat, 29 Mar 2025 20:42:59 +0100
Subject: [PATCH] use cancellableSleep also for error handling in
 readUDPWriteTCP, so that we avoid trying to establish a obfs4 connection
 while obfsvpn is already about to shutdown

---
 client/client.go | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/client/client.go b/client/client.go
index cb061c8..70bce4b 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)
+			}
 		}
 	}
 }
-- 
GitLab