From 94742e2f44ca08a64c1851aa1a00c3e9f266d0e9 Mon Sep 17 00:00:00 2001 From: Jeff Halter <868228+jhalter@users.noreply.github.com> Date: Mon, 7 Nov 2022 20:05:25 -0800 Subject: Add workaround for Windows file transfer errors --- hotline/server.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'hotline') diff --git a/hotline/server.go b/hotline/server.go index 8d6803b..164b93e 100644 --- a/hotline/server.go +++ b/hotline/server.go @@ -749,6 +749,10 @@ func (s *Server) handleFileTransfer(ctx context.Context, rwc io.ReadWriter) erro delete(s.fileTransfers, t.ReferenceNumber) s.mux.Unlock() + // Wait a few seconds before closing the connection: this is a workaround for problems + // observed with Windows clients where the client must initiate close of the TCP connection before + // the server does. This is gross and seems unnecessary. TODO: Revisit? + time.Sleep(3 * time.Second) }() s.mux.Lock() @@ -783,7 +787,9 @@ func (s *Server) handleFileTransfer(ctx context.Context, rwc io.ReadWriter) erro case FileDownload: s.Stats.DownloadCounter += 1 s.Stats.DownloadsInProgress += 1 - defer func() { s.Stats.DownloadsInProgress -= 1 }() + defer func() { + s.Stats.DownloadsInProgress -= 1 + }() var dataOffset int64 if fileTransfer.fileResumeData != nil { -- cgit