[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r27811 - gnunet/src/namestore
From: |
gnunet |
Subject: |
[GNUnet-SVN] r27811 - gnunet/src/namestore |
Date: |
Tue, 9 Jul 2013 09:24:44 +0200 |
Author: grothoff
Date: 2013-07-09 09:24:44 +0200 (Tue, 09 Jul 2013)
New Revision: 27811
Modified:
gnunet/src/namestore/gnunet-service-namestore.c
Log:
-simplify zone key loading by using synchronous ECC key API
Modified: gnunet/src/namestore/gnunet-service-namestore.c
===================================================================
--- gnunet/src/namestore/gnunet-service-namestore.c 2013-07-09 07:18:53 UTC
(rev 27810)
+++ gnunet/src/namestore/gnunet-service-namestore.c 2013-07-09 07:24:44 UTC
(rev 27811)
@@ -192,27 +192,8 @@
*/
static struct GNUNET_CONTAINER_MultiHashMap *zonekeys;
-/**
- * DLL head for key loading contexts
- */
-static struct KeyLoadContext *kl_head;
/**
- * DLL tail for key loading contexts
- */
-static struct KeyLoadContext *kl_tail;
-
-struct KeyLoadContext
-{
- struct KeyLoadContext *next;
- struct KeyLoadContext *prev;
- struct GNUNET_CRYPTO_EccKeyGenerationContext *keygen;
- char *filename;
- unsigned int *counter;
-};
-
-
-/**
* Writes the encrypted private key of a zone in a file
*
* @param filename where to store the zone
@@ -402,7 +383,6 @@
{
struct GNUNET_NAMESTORE_ZoneIteration *no;
struct GNUNET_NAMESTORE_Client *nc;
- struct KeyLoadContext *kl;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping namestore service\n");
if (NULL != snc)
@@ -410,16 +390,6 @@
GNUNET_SERVER_notification_context_destroy (snc);
snc = NULL;
}
-
- while (NULL != (kl = kl_head))
- {
- GNUNET_CONTAINER_DLL_remove (kl_head, kl_tail, kl);
- if (NULL != kl->keygen)
- GNUNET_CRYPTO_ecc_key_create_stop (kl->keygen);
- GNUNET_free (kl->filename);
- GNUNET_free (kl);
- }
-
GNUNET_CONTAINER_multihashmap_iterate (zonekeys, &zone_to_disk_it, NULL);
GNUNET_CONTAINER_multihashmap_destroy (zonekeys);
zonekeys = NULL;
@@ -1712,30 +1682,7 @@
GNUNET_SERVER_receive_done (client, GNUNET_OK);
}
-static void
-zonekey_it_key_cb (void *cls,
- struct GNUNET_CRYPTO_EccPrivateKey *pk,
- const char *emsg)
-{
- struct KeyLoadContext *kl = cls;
- kl->keygen = NULL;
- if (NULL == pk)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- _("Could not parse zone key file `%s'\n"),
- kl->filename);
- return;
- }
- learn_private_key (pk);
- (*kl->counter) ++;
-
- GNUNET_CONTAINER_DLL_remove (kl_head, kl_tail, kl);
- GNUNET_free (kl->filename);
- GNUNET_free (kl);
-}
-
-
/**
* Load zone keys from directory by reading all .zkey files in this directory
*
@@ -1746,24 +1693,17 @@
static int
zonekey_file_it (void *cls, const char *filename)
{
- struct KeyLoadContext *kl;
+ unsigned int *counter = cls;
+ struct GNUNET_CRYPTO_EccPrivateKey *pk;
+
if ((NULL == filename) ||
- (NULL == strstr(filename, ".zkey")))
+ (NULL == strstr (filename, ".zkey")))
return GNUNET_OK;
-
- kl = GNUNET_malloc (sizeof (struct KeyLoadContext));
- kl->filename = strdup (filename);
- kl->counter = cls;
- kl->keygen = GNUNET_CRYPTO_ecc_key_create_start (filename,
zonekey_it_key_cb, kl);
- if (NULL == kl->keygen)
- {
- GNUNET_free (kl->filename);
- GNUNET_free (kl);
- return GNUNET_OK;
- }
-
- GNUNET_CONTAINER_DLL_insert (kl_head, kl_tail, kl);
+ pk = GNUNET_CRYPTO_ecc_key_create_from_file (filename);
+ learn_private_key (pk);
+ GNUNET_CRYPTO_ecc_key_free (pk);
+ (*counter)++;
return GNUNET_OK;
}
@@ -1832,10 +1772,12 @@
}
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Scanning directory `%s' for zone files\n", zonefile_directory);
+ "Scanning directory `%s' for zone files\n",
+ zonefile_directory);
zonekeys = GNUNET_CONTAINER_multihashmap_create (16, GNUNET_NO);
counter = 0;
- GNUNET_DISK_directory_scan (zonefile_directory, zonekey_file_it, &counter);
+ GNUNET_DISK_directory_scan (zonefile_directory,
+ &zonekey_file_it, &counter);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Found %u zone files\n",
counter);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r27811 - gnunet/src/namestore,
gnunet <=