pass only CadetTunnelAxolotl if it suffices, preparation for having ambiguous KX...
[oweals/gnunet.git] / src / cadet / gnunet-service-cadet-new_paths.c
index 0fb558d81f4445a51c2c7248281e96c13021ed58..685656ec31e3d5ffb66960cd733c58ccba941fcb 100644 (file)
@@ -67,6 +67,19 @@ struct CadetPeerPath
 };
 
 
+/**
+ * Calculate the path's desirability score.
+ *
+ * @param path path to calculate the score for
+ */
+static void
+recalculate_path_desirability (struct CadetPeerPath *path)
+{
+  /* FIXME: update path desirability! */
+  GNUNET_break (0); // not implemented
+}
+
+
 /**
  * Return how much we like keeping the path.  This is an aggregate
  * score based on various factors, including the age of the path
@@ -217,7 +230,7 @@ GCPP_release (struct CadetPeerPath *path)
     entry = path->entries[path->entries_length - 1];
     path->hn = GCP_attach_path (entry->peer,
                                 path,
-                                path->entries_length,
+                                path->entries_length - 1,
                                 GNUNET_NO);
     if (NULL != path->hn)
       return; /* yep, got attached, we are done. */
@@ -261,8 +274,7 @@ GCPP_update_score (struct CadetPeerPath *path,
     else
       entry->score += delta;
   }
-
-  /* FIXME: update path desirability! */
+  recalculate_path_desirability (path);
 }
 
 
@@ -387,7 +399,7 @@ extend_path (struct CadetPeerPath *path,
     struct CadetPeerPathEntry *entry = path->entries[old_len + i];
 
     path->entries_length = old_len + i + 1;
-    /* FIXME: note that path->desirability is used, but not yet updated here! */
+    recalculate_path_desirability (path);
     hn = GCP_attach_path (peers[i],
                           path,
                           old_len + (unsigned int) i,
@@ -519,7 +531,7 @@ GCPP_try_path_from_dht (const struct GNUNET_PeerIdentity *get_path,
     struct CadetPeerPathEntry *entry = path->entries[i];
 
     path->entries_length = i + 1;
-    /* FIXME: note that path->desirability is used, but not yet initialized here! */
+    recalculate_path_desirability (path);
     hn = GCP_attach_path (cpath[i],
                           path,
                           (unsigned int) i,
@@ -634,6 +646,7 @@ GCPP_get_path_from_route (unsigned int path_length,
                         entry,
                         i);
   }
+  recalculate_path_desirability (path);
   LOG (GNUNET_ERROR_TYPE_DEBUG,
        "Created new path %s to create inverse for incoming connection\n",
        GCPP_2s (path));