X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/blobdiff_plain/9f89cd9fbbcec9f7f42c87ee0adc21427aab9f1c..09261d2b52fa739bb6321c866566223f11061201:/hotline/file_transfer.go diff --git a/hotline/file_transfer.go b/hotline/file_transfer.go index 806466b..b11aeae 100644 --- a/hotline/file_transfer.go +++ b/hotline/file_transfer.go @@ -87,6 +87,7 @@ func (ftm *MemFileTransferMgr) Delete(id FileTransferID) { } type FileTransfer struct { + FileRoot string FileName []byte FilePath []byte RefNum [4]byte @@ -116,9 +117,10 @@ func (wc *WriteCounter) Write(p []byte) (int, error) { return n, nil } -func (cc *ClientConn) NewFileTransfer(transferType FileTransferType, fileName, filePath, size []byte) *FileTransfer { +func (cc *ClientConn) NewFileTransfer(transferType FileTransferType, fileroot string, fileName, filePath, size []byte) *FileTransfer { ft := &FileTransfer{ FileName: fileName, + FileRoot: fileroot, FilePath: filePath, Type: transferType, TransferSize: size, @@ -324,12 +326,14 @@ func UploadHandler(rwc io.ReadWriter, fullPath string, fileTransfer *FileTransfe } } + defer file.Close() + f, err := NewFileWrapper(fileStore, fullPath, 0) if err != nil { return err } - rLogger.Info("File upload started", "dstFile", fullPath) + rLogger.Debug("File upload started", "dstFile", fullPath) rForkWriter := io.Discard iForkWriter := io.Discard @@ -346,15 +350,11 @@ func UploadHandler(rwc io.ReadWriter, fullPath string, fileTransfer *FileTransfe } if err := receiveFile(rwc, file, rForkWriter, iForkWriter, fileTransfer.bytesSentCounter); err != nil { - rLogger.Error(err.Error()) - } - - if err := file.Close(); err != nil { - return err + return fmt.Errorf("receive file: %v", err) } if err := fileStore.Rename(fullPath+".incomplete", fullPath); err != nil { - return err + return fmt.Errorf("rename incomplete file: %v", err) } rLogger.Info("File upload complete", "dstFile", fullPath) @@ -419,7 +419,6 @@ func DownloadFolderHandler(rwc io.ReadWriter, fullPath string, fileTransfer *Fil } subPath := path[basePathLen+1:] - rLogger.Debug("Sending fileheader", "i", i, "path", path, "fullFilePath", fullPath, "subPath", subPath, "IsDir", info.IsDir()) if i == 1 { return nil @@ -435,8 +434,6 @@ func DownloadFolderHandler(rwc io.ReadWriter, fullPath string, fileTransfer *Fil return err } - rLogger.Debug("Client folder download action", "action", fmt.Sprintf("%X", nextAction[0:2])) - var dataOffset int64 switch nextAction[1] {