Author: alanmc
Date: 2007-03-24 11:23:43 -0500 (Sat, 24 Mar 2007)
New Revision: 74936
Modified:
trunk/bitsharp/src/MonoTorrent.Client/Managers/TrackerManager.cs
Log:
Correctly parsing the Scrape response
Modified: trunk/bitsharp/src/MonoTorrent.Client/Managers/TrackerManager.cs
===================================================================
--- trunk/bitsharp/src/MonoTorrent.Client/Managers/TrackerManager.cs
2007-03-24 16:23:06 UTC (rev 74935)
+++ trunk/bitsharp/src/MonoTorrent.Client/Managers/TrackerManager.cs
2007-03-24 16:23:43 UTC (rev 74936)
@@ -271,8 +271,11 @@
UpdateState(id.Tracker, TrackerState.ScrapingFailed);
return;
}
+ if (!dict.ContainsKey("files"))
+ return;
- foreach (KeyValuePair<BEncodedString, IBEncodedValue> keypair in
dict)
+ BEncodedDictionary files = (BEncodedDictionary)dict["files"];
+ foreach (KeyValuePair<BEncodedString, IBEncodedValue> keypair in
files)
{
d = (BEncodedDictionary)keypair.Value;
foreach (KeyValuePair<BEncodedString, IBEncodedValue> kp in d)
@@ -280,19 +283,19 @@
switch (kp.Key.ToString())
{
case ("complete"):
- id.Tracker.Complete =
Convert.ToInt32(keypair.Value.ToString());
+ id.Tracker.Complete =
Convert.ToInt32(kp.Value.ToString());
break;
case ("downloaded"):
- id.Tracker.Downloaded =
Convert.ToInt32(keypair.Value.ToString());
+ id.Tracker.Downloaded =
Convert.ToInt32(kp.Value.ToString());
break;
case ("incomplete"):
- id.Tracker.Incomplete =
Convert.ToInt32(keypair.Value.ToString());
+ id.Tracker.Incomplete =
Convert.ToInt32(kp.Value.ToString());
break;
default:
- Logger.Log("Key: " + keypair.Key.ToString() + "
Value: " + keypair.Value.ToString());
+ Logger.Log("Key: " + kp.Key.ToString() + " Value:
" + kp.Value.ToString());
break;
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches