From 728fc76e8b9cf2486e1b9563e1ed3d851e292920 Mon Sep 17 00:00:00 2001
From: Bolke de Bruin <bolke@xs4all.nl>
Date: Mon, 13 Jul 2020 11:01:39 +0200
Subject: [PATCH] Avoid concurrency issues

---
 rdg.go | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/rdg.go b/rdg.go
index c70c16f..5dd76f7 100644
--- a/rdg.go
+++ b/rdg.go
@@ -220,7 +220,8 @@ func handleWebsocketProtocol(conn *websocket.Conn)  {
 		case PKT_TYPE_DATA:
 			forwardDataPacket(remote, pkt)
 		case PKT_TYPE_KEEPALIVE:
-			conn.WriteMessage(mt, createPacket(PKT_TYPE_KEEPALIVE, []byte{}))
+			// do not write to make sure we do not create concurrency issues
+			// conn.WriteMessage(mt, createPacket(PKT_TYPE_KEEPALIVE, []byte{}))
 		case PKT_TYPE_CLOSE_CHANNEL:
 			remote.Close()
 			return
@@ -314,7 +315,8 @@ func handleLegacyProtocol(w http.ResponseWriter, r *http.Request) {
 				case PKT_TYPE_DATA:
 					forwardDataPacket(remote, packet)
 				case PKT_TYPE_KEEPALIVE:
-					s.ConnOut.Write(createPacket(PKT_TYPE_KEEPALIVE, []byte{}))
+					// avoid concurrency issues
+					// s.ConnOut.Write(createPacket(PKT_TYPE_KEEPALIVE, []byte{}))
 				case PKT_TYPE_CLOSE_CHANNEL:
 					s.ConnIn.Close()
 					s.ConnOut.Close()
-- 
GitLab