diff options
| author | Bernhard Guillon <Bernhard.Guillon@begu.org> | 2026-07-07 14:33:57 +0200 |
|---|---|---|
| committer | Bernhard Guillon <Bernhard.Guillon@begu.org> | 2026-07-07 14:33:57 +0200 |
| commit | 6feda0632367deaa9caf193e89b74f7affd45021 (patch) | |
| tree | 92dcf022db3a57dc45443c31870600f006c87332 /cmd_linux.go | |
| parent | 52ac49a1ebd712198b66c7662b8542376c156194 (diff) | |
| download | sourcewatch-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.go | 7 |
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) } } |
