gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [gnunet] branch master updated: support grabbing individual


From: gnunet
Subject: [GNUnet-SVN] [gnunet] branch master updated: support grabbing individual records
Date: Sun, 13 May 2018 19:38:44 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new 2bb2faa20 support grabbing individual records
2bb2faa20 is described below

commit 2bb2faa207e4015609100a1aca38af344c65596f
Author: Christian Grothoff <address@hidden>
AuthorDate: Sun May 13 19:38:42 2018 +0200

    support grabbing individual records
---
 src/namestore/gnunet-namestore.c | 81 +++++++++++++++++++++++++++++++++++-----
 1 file changed, 71 insertions(+), 10 deletions(-)

diff --git a/src/namestore/gnunet-namestore.c b/src/namestore/gnunet-namestore.c
index 32b1a39d0..753ee79d1 100644
--- a/src/namestore/gnunet-namestore.c
+++ b/src/namestore/gnunet-namestore.c
@@ -80,6 +80,11 @@ static struct GNUNET_NAMESTORE_QueueEntry *add_qe_uri;
 static struct GNUNET_NAMESTORE_QueueEntry *add_qe;
 
 /**
+ * Queue entry for the 'lookup' operation.
+ */
+static struct GNUNET_NAMESTORE_QueueEntry *get_qe;
+
+/**
  * Queue entry for the 'reverse lookup' operation (in combination with a name).
  */
 static struct GNUNET_NAMESTORE_QueueEntry *reverse_qe;
@@ -234,6 +239,11 @@ do_shutdown (void *cls)
     GNUNET_NAMESTORE_cancel (add_qe_uri);
     add_qe_uri = NULL;
   }
+  if (NULL != get_qe)
+  {
+    GNUNET_NAMESTORE_cancel (get_qe);
+    get_qe = NULL;
+  }
   if (NULL != del_qe)
   {
     GNUNET_NAMESTORE_cancel (del_qe);
@@ -271,6 +281,7 @@ test_finished ()
 {
   if ( (NULL == add_qe) &&
        (NULL == add_qe_uri) &&
+       (NULL == get_qe) &&
        (NULL == del_qe) &&
        (NULL == reverse_qe) &&
        (NULL == list_it) )
@@ -492,6 +503,30 @@ display_record_monitor (void *cls,
 
 
 /**
+ * Process a record that was stored in the namestore.
+ *
+ * @param cls closure
+ * @param zone_key private key of the zone
+ * @param rname name that is being mapped (at most 255 characters long)
+ * @param rd_len number of entries in @a rd array
+ * @param rd array of records with data to store
+ */
+static void
+display_record_lookup (void *cls,
+                       const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone_key,
+                       const char *rname,
+                       unsigned int rd_len,
+                       const struct GNUNET_GNSRECORD_Data *rd)
+{
+  get_qe = NULL;
+  display_record (rname,
+                  rd_len,
+                  rd);
+  test_finished ();
+}
+
+
+/**
  * Function called once we are in sync in monitor mode.
  *
  * @param cls NULL
@@ -522,12 +557,29 @@ monitor_error_cb (void *cls)
 
 
 /**
- * Function called if lookup fails.
+ * Function called on errors while monitoring.
+ *
+ * @param cls NULL
  */
 static void
 lookup_error_cb (void *cls)
 {
   (void) cls;
+  get_qe = NULL;
+  FPRINTF (stderr,
+          "%s",
+          "Failed to lookup record.\n");
+  test_finished ();
+}
+
+
+/**
+ * Function called if lookup fails.
+ */
+static void
+add_error_cb (void *cls)
+{
+  (void) cls;
   add_qe = NULL;
   GNUNET_break (0);
   ret = 1;
@@ -970,7 +1022,7 @@ identity_cb (void *cls,
     add_qe = GNUNET_NAMESTORE_records_lookup (ns,
                                               &zone_pkey,
                                               name,
-                                              &lookup_error_cb,
+                                              &add_error_cb,
                                               NULL,
                                               &get_existing_record,
                                               NULL);
@@ -996,14 +1048,23 @@ identity_cb (void *cls,
   }
   if (list)
   {
-    list_it = GNUNET_NAMESTORE_zone_iteration_start (ns,
-                                                     &zone_pkey,
-                                                     &zone_iteration_error_cb,
-                                                     NULL,
-                                                     &display_record_iterator,
-                                                     NULL,
-                                                     &zone_iteration_finished,
-                                                     NULL);
+    if (NULL != name)
+      get_qe = GNUNET_NAMESTORE_records_lookup (ns,
+                                                &zone_pkey,
+                                                name,
+                                                &lookup_error_cb,
+                                                NULL,
+                                                &display_record_lookup,
+                                                NULL);
+    else
+      list_it = GNUNET_NAMESTORE_zone_iteration_start (ns,
+                                                       &zone_pkey,
+                                                       
&zone_iteration_error_cb,
+                                                       NULL,
+                                                       
&display_record_iterator,
+                                                       NULL,
+                                                       
&zone_iteration_finished,
+                                                       NULL);
   }
   if (NULL != reverse_pkey)
   {

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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