From 451aac9c4712f15ddc57f44908ea0d6c6cced186 Mon Sep 17 00:00:00 2001 From: Kleissner Date: Wed, 3 Nov 2021 21:02:00 +0100 Subject: [PATCH] Fix bug in transfer code. A wrong transfer size was returned when an offset was used. --- Transfer UDT.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Transfer UDT.go b/Transfer UDT.go index 54126a2..530165a 100644 --- a/Transfer UDT.go +++ b/Transfer UDT.go @@ -48,6 +48,7 @@ func (peer *PeerInfo) startFileTransferUDT(hash []byte, fileSize uint64, offset, udtConfig.MaxPacketSize = protocol.TransferMaxEmbedSize // start UDT sender + // Set streaming to true, otherwise udtSocket.Read returns the error "Message truncated" in case the reader has a smaller buffer. udtConn, err := udt.DialUDT(udtConfig, virtualConnection, virtualConnection.incomingData, virtualConnection.outgoingData, virtualConnection.terminateChan, true) if err != nil { return err @@ -58,7 +59,7 @@ func (peer *PeerInfo) startFileTransferUDT(hash []byte, fileSize uint64, offset, // Start by sending the header: Total File Size and Transfer Size. header := make([]byte, 16) binary.LittleEndian.PutUint64(header[0:8], fileSize) - binary.LittleEndian.PutUint64(header[8:16], limit-offset) + binary.LittleEndian.PutUint64(header[8:16], limit) if n, err := udtConn.Write(header); err != nil { return err } else if n != len(header) {