check against all pending requests with same hash, not just first; this is a true...
[oweals/gnunet.git] / src / fs / fs_namespace.c
index 90de4a915c665ffd60ae5e46a89cb1d9693722b1..5d52265b74c9c05916bb28053d9f33d9e5de0abf 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet
-     (C) 2003-2013 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2003-2013 Christian Grothoff (and other contributing authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
  * @file fs/fs_namespace.c
  * @brief publishing to namespaces, and tracking updateable entries
+ *        for our namespaces
  * @author Christian Grothoff
  */
 #include "platform.h"
@@ -91,7 +92,7 @@ struct GNUNET_FS_UpdateInformationGraph
   /**
    * Private key for the namespace.
    */
-  struct GNUNET_CRYPTO_EccPrivateKey ns;
+  struct GNUNET_CRYPTO_EcdsaPrivateKey ns;
 
   /**
    * Hash map mapping identifiers of update nodes
@@ -126,13 +127,13 @@ struct GNUNET_FS_UpdateInformationGraph
  */
 static char *
 get_update_information_directory (struct GNUNET_FS_Handle *h,
-                                 const struct GNUNET_CRYPTO_EccPrivateKey *ns)
+                                 const struct GNUNET_CRYPTO_EcdsaPrivateKey *ns)
 {
   char *dn;
   char *ret;
-  struct GNUNET_CRYPTO_EccPublicKey pub;
-  struct GNUNET_CRYPTO_ShortHashCode hc;
-  struct GNUNET_CRYPTO_ShortHashAsciiEncoded enc;
+  struct GNUNET_CRYPTO_EcdsaPublicKey pub;
+  struct GNUNET_HashCode hc;
+  struct GNUNET_CRYPTO_HashAsciiEncoded enc;
 
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_filename (h->cfg, "FS", "UPDATE_DIR",
@@ -142,14 +143,14 @@ get_update_information_directory (struct GNUNET_FS_Handle *h,
                               "fs", "UPDATE_DIR");
     return NULL;
   }
-  GNUNET_CRYPTO_ecc_key_get_public (ns, &pub);
-  GNUNET_CRYPTO_short_hash (&pub, sizeof (pub), &hc);
-  GNUNET_CRYPTO_short_hash_to_enc (&hc,
-                                  &enc);
-  GNUNET_asprintf (&ret, "%s%s%s", 
-                  dn, 
-                  DIR_SEPARATOR_STR, 
-                  (const char *) enc.short_encoding);
+  GNUNET_CRYPTO_ecdsa_key_get_public (ns, &pub);
+  GNUNET_CRYPTO_hash (&pub, sizeof (pub), &hc);
+  GNUNET_CRYPTO_hash_to_enc (&hc,
+                            &enc);
+  GNUNET_asprintf (&ret, "%s%s%s",
+                  dn,
+                  DIR_SEPARATOR_STR,
+                  (const char *) enc.encoding);
   GNUNET_free (dn);
   return ret;
 }
@@ -157,7 +158,7 @@ get_update_information_directory (struct GNUNET_FS_Handle *h,
 
 /**
  * Release memory occupied by UIG datastructure.
- * 
+ *
  * @param uig data structure to free
  */
 static void
@@ -240,7 +241,7 @@ END:
  */
 static struct GNUNET_FS_UpdateInformationGraph *
 read_update_information_graph (struct GNUNET_FS_Handle *h,
-                              const struct GNUNET_CRYPTO_EccPrivateKey *ns)
+                              const struct GNUNET_CRYPTO_EcdsaPrivateKey *ns)
 {
   struct GNUNET_FS_UpdateInformationGraph *uig;
   char *fn;
@@ -316,7 +317,7 @@ read_update_information_graph (struct GNUNET_FS_Handle *h,
  END:
   if (GNUNET_OK != GNUNET_BIO_read_close (rh, &emsg))
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Failed to read `%s': %s\n"), 
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Failed to read `%s': %s\n"),
                fn, emsg);
     GNUNET_free (emsg);
   }
@@ -345,7 +346,7 @@ struct GNUNET_FS_PublishSksContext
   /**
    * Namespace we're publishing to.
    */
-  struct GNUNET_CRYPTO_EccPrivateKey ns;
+  struct GNUNET_CRYPTO_EcdsaPrivateKey ns;
 
   /**
    * Handle to the datastore.
@@ -382,7 +383,7 @@ struct GNUNET_FS_PublishSksContext
  * @param msg error message (or NULL)
  */
 static void
-sks_publish_cont (void *cls, 
+sks_publish_cont (void *cls,
                  const char *msg)
 {
   struct GNUNET_FS_PublishSksContext *psc = cls;
@@ -404,7 +405,7 @@ sks_publish_cont (void *cls,
     uig = read_update_information_graph (psc->h,
                                         &psc->ns);
     GNUNET_array_append (uig->update_nodes,
-                        uig->update_node_count, 
+                        uig->update_node_count,
                         psc->nsn);
     psc->nsn = NULL;
     write_update_information_graph (uig);
@@ -433,7 +434,7 @@ sks_publish_cont (void *cls,
  */
 struct GNUNET_FS_PublishSksContext *
 GNUNET_FS_publish_sks (struct GNUNET_FS_Handle *h,
-                       const struct GNUNET_CRYPTO_EccPrivateKey *ns,
+                       const struct GNUNET_CRYPTO_EcdsaPrivateKey *ns,
                        const char *identifier, const char *update,
                        const struct GNUNET_CONTAINER_MetaData *meta,
                        const struct GNUNET_FS_Uri *uri,
@@ -447,7 +448,7 @@ GNUNET_FS_publish_sks (struct GNUNET_FS_Handle *h,
   sks_uri = GNUNET_new (struct GNUNET_FS_Uri);
   sks_uri->type = GNUNET_FS_URI_SKS;
   sks_uri->data.sks.identifier = GNUNET_strdup (identifier);
-  GNUNET_CRYPTO_ecc_key_get_public (ns,
+  GNUNET_CRYPTO_ecdsa_key_get_public (ns,
                                    &sks_uri->data.sks.ns);
 
   psc = GNUNET_new (struct GNUNET_FS_PublishSksContext);
@@ -548,16 +549,16 @@ struct ProcessUpdateClosure
  *         GNUNET_NO if not.
  */
 static int
-process_update_node (void *cls, 
-                    const struct GNUNET_HashCode *key, 
+process_update_node (void *cls,
+                    const struct GNUNET_HashCode *key,
                     void *value)
 {
   struct ProcessUpdateClosure *pc = cls;
   struct NamespaceUpdateNode *nsn = value;
 
   pc->ip (pc->ip_cls,
-         nsn->id, 
-         nsn->uri, 
+         nsn->id,
+         nsn->uri,
          nsn->md,
          nsn->update);
   return GNUNET_YES;
@@ -618,7 +619,7 @@ struct FindTreeClosure
  */
 static int
 find_trees (void *cls,
-           const struct GNUNET_HashCode *key, 
+           const struct GNUNET_HashCode *key,
            void *value)
 {
   struct FindTreeClosure *fc = cls;
@@ -678,7 +679,7 @@ find_trees (void *cls,
  */
 void
 GNUNET_FS_namespace_list_updateable (struct GNUNET_FS_Handle *h,
-                                    const struct GNUNET_CRYPTO_EccPrivateKey *ns,
+                                    const struct GNUNET_CRYPTO_EcdsaPrivateKey *ns,
                                      const char *next_id,
                                      GNUNET_FS_IdentifierProcessor ip,
                                      void *ip_cls)
@@ -779,7 +780,7 @@ GNUNET_FS_namespace_list_updateable (struct GNUNET_FS_Handle *h,
       fc.tree_array[fc.id] = nsn;
       nsn->tree_id = fc.id;
     }
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                "TREE of node `%s' is %u\n", nsn->id,
                 fc.id);
   }