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

Reply via email to