gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r17882 - gnunet/src/mesh


From: gnunet
Subject: [GNUnet-SVN] r17882 - gnunet/src/mesh
Date: Mon, 31 Oct 2011 17:27:32 +0100

Author: bartpolot
Date: 2011-10-31 17:27:32 +0100 (Mon, 31 Oct 2011)
New Revision: 17882

Modified:
   gnunet/src/mesh/gnunet-service-mesh.c
Log:
Dont add whole path to peer, just the relevant part

Modified: gnunet/src/mesh/gnunet-service-mesh.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh.c       2011-10-31 16:04:59 UTC (rev 
17881)
+++ gnunet/src/mesh/gnunet-service-mesh.c       2011-10-31 16:27:32 UTC (rev 
17882)
@@ -1509,18 +1509,34 @@
     path_destroy (path);
     return;
   }
+  for (l = 1; l < path->length; l++)
+  {
+    if (path->peers[l] == myid)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                  "MESH: shortening path by %u\n",
+                  l);
+      for (l2 = 0; l2 < path->length - l - 1 ; l2++)
+      {
+        path->peers[l2] = path->peers[l + l2];
+      }
+      path->length -= l;
+      l = 0;
+      path->peers = GNUNET_realloc (path->peers,
+                                    path->length * sizeof (GNUNET_PEER_Id));
+    }
+  }
 #if MESH_DEBUG
   { 
     struct GNUNET_PeerIdentity id;
-    
+
     GNUNET_PEER_resolve (peer_info->id, &id);
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-               "MESH: adding path [%u] to peer %s\n",
-               path->length,
-               GNUNET_i2s (&id));
+                "MESH: adding path [%u] to peer %s\n",
+                path->length,
+                GNUNET_i2s (&id));
   }
 #endif
-
   l = path_get_length (path);
   if (0 == l)
   {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]