From: Jeff Halter Date: Tue, 8 Nov 2022 04:05:25 +0000 (-0800) Subject: Add workaround for Windows file transfer errors X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/commitdiff_plain/94742e2f44ca08a64c1851aa1a00c3e9f266d0e9 Add workaround for Windows file transfer errors --- 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 {