ats_ril: - removed some redundantly saved plugin environment attributes
[oweals/gnunet.git] / src / fs / gnunet-service-fs_cp.c
index f5b5213bc16ac899c7d19e1a490649202c4c2696..593250e2c5b6d3c6bb4fd5ecf41f8e2ebb9b1e45 100644 (file)
@@ -24,6 +24,7 @@
  * @author Christian Grothoff
  */
 #include "platform.h"
+#include "gnunet_util_lib.h"
 #include "gnunet_load_lib.h"
 #include "gnunet-service-fs.h"
 #include "gnunet-service-fs_cp.h"
@@ -307,7 +308,7 @@ struct GSF_ConnectedPeer
 /**
  * Map from peer identities to 'struct GSF_ConnectPeer' entries.
  */
-static struct GNUNET_CONTAINER_MultiHashMap *cp_map;
+static struct GNUNET_CONTAINER_MultiPeerMap *cp_map;
 
 /**
  * Where do we store respect information?
@@ -325,11 +326,13 @@ static char *respectDirectory;
 static char *
 get_respect_filename (const struct GNUNET_PeerIdentity *id)
 {
-  struct GNUNET_CRYPTO_HashAsciiEncoded fil;
   char *fn;
 
-  GNUNET_CRYPTO_hash_to_enc (&id->hashPubKey, &fil);
-  GNUNET_asprintf (&fn, "%s%s%s", respectDirectory, DIR_SEPARATOR_STR, &fil);
+  GNUNET_asprintf (&fn,
+                  "%s%s%s",
+                  respectDirectory,
+                  DIR_SEPARATOR_STR,
+                  GNUNET_i2s_full (id));
   return fn;
 }
 
@@ -539,7 +542,7 @@ ats_reserve_callback (void *cls, const struct GNUNET_PeerIdentity *peer,
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Reserved %d bytes / need to wait %s for reservation\n",
-              (int) amount, 
+              (int) amount,
              GNUNET_STRINGS_relative_time_to_string (res_delay, GNUNET_YES));
   cp->rc = NULL;
   if (0 == amount)
@@ -594,12 +597,12 @@ GSF_peer_connect_handler_ (const struct GNUNET_PeerIdentity *peer)
   GNUNET_free (fn);
   cp->request_map = GNUNET_CONTAINER_multihashmap_create (128, GNUNET_NO);
   GNUNET_break (GNUNET_OK ==
-                GNUNET_CONTAINER_multihashmap_put (cp_map, 
-                                                  &GSF_connected_peer_get_identity2_ (cp)->hashPubKey,
+                GNUNET_CONTAINER_multipeermap_put (cp_map,
+                                                  GSF_connected_peer_get_identity2_ (cp),
                                                    cp,
                                                    GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY));
   GNUNET_STATISTICS_set (GSF_stats, gettext_noop ("# peers connected"),
-                         GNUNET_CONTAINER_multihashmap_size (cp_map),
+                         GNUNET_CONTAINER_multipeermap_size (cp_map),
                          GNUNET_NO);
   GSF_push_start_ (cp);
   return cp;
@@ -643,7 +646,7 @@ GSF_peer_get_ (const struct GNUNET_PeerIdentity *peer)
 {
   if (NULL == cp_map)
     return NULL;
-  return GNUNET_CONTAINER_multihashmap_get (cp_map, &peer->hashPubKey);
+  return GNUNET_CONTAINER_multipeermap_get (cp_map, peer);
 }
 
 
@@ -679,7 +682,7 @@ GSF_handle_p2p_migration_stop_ (void *cls,
   bt = GNUNET_TIME_relative_ntoh (msm->duration);
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               _("Migration of content to peer `%s' blocked for %s\n"),
-              GNUNET_i2s (other), 
+              GNUNET_i2s (other),
              GNUNET_STRINGS_relative_time_to_string (bt, GNUNET_YES));
   cp->ppd.migration_blocked_until = GNUNET_TIME_relative_to_absolute (bt);
   if (GNUNET_SCHEDULER_NO_TASK == cp->mig_revive_task)
@@ -1251,7 +1254,7 @@ GSF_handle_p2p_query_ (const struct GNUNET_PeerIdentity *other,
   {
     pr = peerreq->pr;
     prd = GSF_pending_request_get_data_ (pr);
-    if (prd->type == type) 
+    if (prd->type == type)
     {
       if (prd->ttl.abs_value_us >= GNUNET_TIME_absolute_get ().abs_value_us + ttl * 1000LL)
       {
@@ -1275,7 +1278,7 @@ GSF_handle_p2p_query_ (const struct GNUNET_PeerIdentity *other,
 
   peerreq = GNUNET_new (struct PeerRequest);
   peerreq->cp = cp;
-  pr = GSF_pending_request_create_ (options, type, &gm->query, 
+  pr = GSF_pending_request_create_ (options, type, &gm->query,
                                     target,
                                     (bfsize >
                                      0) ? (const char *) &opt[bits] : NULL,
@@ -1490,10 +1493,11 @@ GSF_peer_disconnect_handler_ (void *cls, const struct GNUNET_PeerIdentity *peer)
     return;                     /* must have been disconnect from core with
                                  * 'peer' == my_id, ignore */
   GNUNET_assert (GNUNET_YES ==
-                 GNUNET_CONTAINER_multihashmap_remove (cp_map,
-                                                       &peer->hashPubKey, cp));
+                 GNUNET_CONTAINER_multipeermap_remove (cp_map,
+                                                       peer,
+                                                      cp));
   GNUNET_STATISTICS_set (GSF_stats, gettext_noop ("# peers connected"),
-                         GNUNET_CONTAINER_multihashmap_size (cp_map),
+                         GNUNET_CONTAINER_multipeermap_size (cp_map),
                          GNUNET_NO);
   if (NULL != cp->migration_pth)
   {
@@ -1579,7 +1583,7 @@ struct IterationContext
  * @return #GNUNET_YES to continue iteration
  */
 static int
-call_iterator (void *cls, const struct GNUNET_HashCode * key, void *value)
+call_iterator (void *cls, const struct GNUNET_PeerIdentity * key, void *value)
 {
   struct IterationContext *ic = cls;
   struct GSF_ConnectedPeer *cp = value;
@@ -1602,7 +1606,7 @@ GSF_iterate_connected_peers_ (GSF_ConnectedPeerIterator it, void *it_cls)
 
   ic.it = it;
   ic.it_cls = it_cls;
-  GNUNET_CONTAINER_multihashmap_iterate (cp_map, &call_iterator, &ic);
+  GNUNET_CONTAINER_multipeermap_iterate (cp_map, &call_iterator, &ic);
 }
 
 
@@ -1709,7 +1713,7 @@ GSF_block_peer_migration_ (struct GSF_ConnectedPeer *cp,
  * @return GNUNET_OK to continue iteration
  */
 static int
-flush_respect (void *cls, const struct GNUNET_HashCode * key, void *value)
+flush_respect (void *cls, const struct GNUNET_PeerIdentity * key, void *value)
 {
   struct GSF_ConnectedPeer *cp = value;
   char *fn;
@@ -1772,7 +1776,7 @@ cron_flush_respect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 
   if (NULL == cp_map)
     return;
-  GNUNET_CONTAINER_multihashmap_iterate (cp_map, &flush_respect, NULL);
+  GNUNET_CONTAINER_multipeermap_iterate (cp_map, &flush_respect, NULL);
   if (NULL == tc)
     return;
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
@@ -1789,7 +1793,7 @@ cron_flush_respect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 void
 GSF_connected_peer_init_ ()
 {
-  cp_map = GNUNET_CONTAINER_multihashmap_create (128, GNUNET_YES);
+  cp_map = GNUNET_CONTAINER_multipeermap_create (128, GNUNET_YES);
   GNUNET_assert (GNUNET_OK ==
                  GNUNET_CONFIGURATION_get_value_filename (GSF_cfg, "fs",
                                                           "RESPECT",
@@ -1809,9 +1813,11 @@ GSF_connected_peer_init_ ()
  * @return #GNUNET_YES (we should continue to iterate)
  */
 static int
-clean_peer (void *cls, const struct GNUNET_HashCode * key, void *value)
+clean_peer (void *cls,
+           const struct GNUNET_PeerIdentity *key,
+           void *value)
 {
-  GSF_peer_disconnect_handler_ (NULL, (const struct GNUNET_PeerIdentity *) key);
+  GSF_peer_disconnect_handler_ (NULL, key);
   return GNUNET_YES;
 }
 
@@ -1823,8 +1829,8 @@ void
 GSF_connected_peer_done_ ()
 {
   cron_flush_respect (NULL, NULL);
-  GNUNET_CONTAINER_multihashmap_iterate (cp_map, &clean_peer, NULL);
-  GNUNET_CONTAINER_multihashmap_destroy (cp_map);
+  GNUNET_CONTAINER_multipeermap_iterate (cp_map, &clean_peer, NULL);
+  GNUNET_CONTAINER_multipeermap_destroy (cp_map);
   cp_map = NULL;
   GNUNET_free (respectDirectory);
   respectDirectory = NULL;
@@ -1840,7 +1846,9 @@ GSF_connected_peer_done_ ()
  * @return #GNUNET_YES (we should continue to iterate)
  */
 static int
-clean_local_client (void *cls, const struct GNUNET_HashCode * key, void *value)
+clean_local_client (void *cls,
+                   const struct GNUNET_PeerIdentity *key,
+                   void *value)
 {
   const struct GSF_LocalClient *lc = cls;
   struct GSF_ConnectedPeer *cp = value;
@@ -1864,7 +1872,7 @@ GSF_handle_local_client_disconnect_ (const struct GSF_LocalClient *lc)
 {
   if (NULL == cp_map)
     return;                     /* already cleaned up */
-  GNUNET_CONTAINER_multihashmap_iterate (cp_map, &clean_local_client,
+  GNUNET_CONTAINER_multipeermap_iterate (cp_map, &clean_local_client,
                                          (void *) lc);
 }