aboutsummaryrefslogtreecommitdiffstats
path: root/cmd_linux.go
diff options
context:
space:
mode:
authorBernhard Guillon <Bernhard.Guillon@begu.org>2026-07-07 14:33:57 +0200
committerBernhard Guillon <Bernhard.Guillon@begu.org>2026-07-07 14:33:57 +0200
commit6feda0632367deaa9caf193e89b74f7affd45021 (patch)
tree92dcf022db3a57dc45443c31870600f006c87332 /cmd_linux.go
parent52ac49a1ebd712198b66c7662b8542376c156194 (diff)
downloadsourcewatch-6feda0632367deaa9caf193e89b74f7affd45021.tar.gz
sourcewatch-6feda0632367deaa9caf193e89b74f7affd45021.zip
Add heartbeat ping/pong to detect disconnects
Windows client sends ping every 10s. Linux server responds with pong. If write fails, client detects disconnect and reconnects.
Diffstat (limited to 'cmd_linux.go')
-rw-r--r--cmd_linux.go7
1 files changed, 7 insertions, 0 deletions
diff --git a/cmd_linux.go b/cmd_linux.go
index 5d5e10a..4239d1d 100644
--- a/cmd_linux.go
+++ b/cmd_linux.go
@@ -155,6 +155,13 @@ func handleClient(conn net.Conn, stack *GitignoreStack) {
msg.Path, remoteManifest, *dryRun,
)
}
+
+ case "ping":
+ logDebug("ping from client")
+ pong := &ProtocolMessage{Type: "pong"}
+ pongData, _ := EncodeMessage(pong)
+ pongData = append(pongData, '\n')
+ conn.Write(pongData)
}
}