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

Reply via email to