Author: alanmc
Date: 2008-01-27 13:28:21 -0500 (Sun, 27 Jan 2008)
New Revision: 94070
Modified:
trunk/bitsharp/src/MonoTorrent/Client/Managers/DiskManager.cs
trunk/bitsharp/src/MonoTorrent/Client/Messages/PeerMessages/PieceMessage.cs
Log:
Fixed bug from last refactoring - pieces are written to disk correctly now
Modified: trunk/bitsharp/src/MonoTorrent/Client/Managers/DiskManager.cs
===================================================================
--- trunk/bitsharp/src/MonoTorrent/Client/Managers/DiskManager.cs
2008-01-27 18:27:40 UTC (rev 94069)
+++ trunk/bitsharp/src/MonoTorrent/Client/Managers/DiskManager.cs
2008-01-27 18:28:21 UTC (rev 94070)
@@ -157,7 +157,7 @@
{
// Calculate the index where we will start to write the data
long writeIndex = (long)message.PieceIndex *
message.PieceLength + message.StartOffset;
- Write(bufferedFileIO, recieveBuffer.Array,
recieveBuffer.Offset + message.DataOffset, writeIndex, message.RequestLength);
+ Write(bufferedFileIO, recieveBuffer.Array,
recieveBuffer.Offset, writeIndex, message.RequestLength);
}
piece.Blocks[index].Written = true;
Modified:
trunk/bitsharp/src/MonoTorrent/Client/Messages/PeerMessages/PieceMessage.cs
===================================================================
--- trunk/bitsharp/src/MonoTorrent/Client/Messages/PeerMessages/PieceMessage.cs
2008-01-27 18:27:40 UTC (rev 94069)
+++ trunk/bitsharp/src/MonoTorrent/Client/Messages/PeerMessages/PieceMessage.cs
2008-01-27 18:28:21 UTC (rev 94070)
@@ -140,15 +140,17 @@
#region Methods
public override void Decode(byte[] buffer, int offset, int length)
{
- pieceIndex = ReadInt(buffer, offset);
- startOffset = ReadInt(buffer, offset + 4);
- dataOffset = 8;
- requestLength = length - dataOffset;
+ this.pieceIndex = ReadInt(buffer, offset);
+ offset += 4;
+ this.startOffset = ReadInt(buffer, offset);
+ offset += 4;
+ this.requestLength = length - 9;
+ this.dataOffset = offset;
- data = BufferManager.EmptyBuffer;
- ClientEngine.BufferManager.GetBuffer(ref this.data, buffer.Length);
- Buffer.BlockCopy(buffer, offset, data.Array, data.Offset, length);
+ this.data = BufferManager.EmptyBuffer;
+ ClientEngine.BufferManager.GetBuffer(ref this.data, requestLength);
+ Buffer.BlockCopy(buffer, offset, this.data.Array,
this.data.Offset, requestLength);
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches