aboutsummaryrefslogtreecommitdiff
path: root/hotline/client.go
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2025-12-05 18:42:57 -0800
committerJeff Halter <868228+jhalter@users.noreply.github.com>2025-12-05 18:42:57 -0800
commit472ec3556a66530e7d2255f75ced81cbbf3a1c74 (patch)
treeb9c39907d0a9056cd706a9c6fcde534b6e065ac4 /hotline/client.go
parente4bdf40802188262c1049edfd41a19bbe76e632e (diff)
Improve error handling, logging, and fix race condition in Disconnect
- Add logging for unhandled transaction types in Client.HandleTransaction - Fix race condition in Client.Disconnect by protecting done channel with mutex - Add TranServerMsg to transaction type names map - Use Time type instead of raw byte array in File.flattenedFileObject - Improve error message in handleFileTransfer to include reference number - Simplify return statement in HandleGetFileInfo
Diffstat (limited to 'hotline/client.go')
-rw-r--r--hotline/client.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/hotline/client.go b/hotline/client.go
index f8d9c34..23bfe9c 100644
--- a/hotline/client.go
+++ b/hotline/client.go
@@ -186,15 +186,20 @@ func (c *Client) HandleTransaction(ctx context.Context, t *Transaction) error {
return err
}
}
+ } else {
+ c.Logger.Info("Unhandled transaction", "type", tranTypeNames[t.Type], "id", int(binary.BigEndian.Uint16(t.Type[:])))
}
return nil
}
func (c *Client) Disconnect() error {
+ c.mu.Lock()
if c.done != nil {
close(c.done)
+ c.done = nil
}
+ c.mu.Unlock()
return c.Connection.Close()
}