Author: alanmc
Date: 2008-02-08 09:26:03 -0500 (Fri, 08 Feb 2008)
New Revision: 95252
Added:
trunk/bitsharp/src/MonoTorrent/MonoTorrent.Client/Messages/UdpTrackerMessages/UdpTrackerMessage.cs
Log:
Reorganised directory structure
Added:
trunk/bitsharp/src/MonoTorrent/MonoTorrent.Client/Messages/UdpTrackerMessages/UdpTrackerMessage.cs
===================================================================
---
trunk/bitsharp/src/MonoTorrent/MonoTorrent.Client/Messages/UdpTrackerMessages/UdpTrackerMessage.cs
2008-02-08 14:23:45 UTC (rev 95251)
+++
trunk/bitsharp/src/MonoTorrent/MonoTorrent.Client/Messages/UdpTrackerMessages/UdpTrackerMessage.cs
2008-02-08 14:26:03 UTC (rev 95252)
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using MonoTorrent.Client.Tracker.UdpTrackerMessages;
+using MonoTorrent.Client.Tracker;
+
+namespace MonoTorrent.Client.Messages
+{
+ public abstract class UdpTrackerMessage : Message
+ {
+ public static UdpTrackerMessage DecodeMessage(ArraySegment<byte>
buffer, int offset, int count)
+ {
+ return DecodeMessage(buffer.Array, buffer.Offset + offset, count);
+ }
+
+ public static UdpTrackerMessage DecodeMessage(byte[] buffer, int
offset, int count)
+ {
+ UdpTrackerMessage m = null;
+ switch (ReadInt(buffer, offset))
+ {
+ case 0:
+ m = new ConnectResponseMessage();
+ break;
+ case 1:
+ m = new AnnounceResponseMessage();
+ break;
+ case 2:
+ m = new ScrapeResponseMessage();
+ break;
+ case 3:
+ m = new ErrorMessage();
+ break;
+ default:
+ throw new ProtocolException(string.Format("Invalid udp
message received: {0}", buffer[offset]));
+ }
+
+ try
+ {
+ m.Decode(buffer, offset, count);
+ }
+ catch
+ {
+ m = new ErrorMessage("Couldn't decode the tracker response");
+ }
+ return m;
+ }
+ }
+}
Property changes on:
trunk/bitsharp/src/MonoTorrent/MonoTorrent.Client/Messages/UdpTrackerMessages/UdpTrackerMessage.cs
___________________________________________________________________
Name: svn:eol-style
+ native
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches