gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r22614 - in gnunet/src: gns include


From: gnunet
Subject: [GNUnet-SVN] r22614 - in gnunet/src: gns include
Date: Wed, 11 Jul 2012 22:43:26 +0200

Author: schanzen
Date: 2012-07-11 22:43:26 +0200 (Wed, 11 Jul 2012)
New Revision: 22614

Modified:
   gnunet/src/gns/gns_api.c
   gnunet/src/gns/gnunet-gns.c
   gnunet/src/include/gnunet_gns_service.h
Log:
-more new api

Modified: gnunet/src/gns/gns_api.c
===================================================================
--- gnunet/src/gns/gns_api.c    2012-07-11 20:24:10 UTC (rev 22613)
+++ gnunet/src/gns/gns_api.c    2012-07-11 20:43:26 UTC (rev 22614)
@@ -719,7 +719,7 @@
 void
 GNUNET_GNS_cancel_lookup_request (struct GNUNET_GNS_LookupRequest *lr)
 {
-  GNUNET_assert (NULL == lr->gns_handle);
+  GNUNET_assert (NULL != lr->gns_handle);
 
   GNUNET_CONTAINER_DLL_remove (lr->gns_handle->pending_head,
                                lr->gns_handle->pending_tail,

Modified: gnunet/src/gns/gnunet-gns.c
===================================================================
--- gnunet/src/gns/gnunet-gns.c 2012-07-11 20:24:10 UTC (rev 22613)
+++ gnunet/src/gns/gnunet-gns.c 2012-07-11 20:43:26 UTC (rev 22614)
@@ -64,6 +64,18 @@
 
 static enum GNUNET_GNS_RecordType rtype;
 
+/* Handle to lookup request */
+static struct GNUNET_GNS_LookupRequest *lookup_request;
+
+/* Handle to shorten request */
+static struct GNUNET_GNS_ShortenRequest *shorten_request;
+
+/* Handle to get authority request */
+static struct GNUNET_GNS_GetAuthRequest *getauth_request;
+
+/* shutdown task */
+static GNUNET_SCHEDULER_TaskIdentifier shutdown_task;
+
 /**
  * Task run on shutdown.  Cleans up everything.
  *
@@ -74,21 +86,29 @@
 do_shutdown (void *cls,
             const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
+  if (NULL != lookup_request)
+    GNUNET_GNS_cancel_lookup_request (lookup_request);
+
+  if (NULL != shorten_request)
+    GNUNET_GNS_cancel_shorten_request (shorten_request);
+
+  if (NULL != getauth_request)
+    GNUNET_GNS_cancel_get_auth_request (getauth_request);
+
   if (NULL != gns)
-  {
     GNUNET_GNS_disconnect (gns);
-    gns = NULL;
-  }
 }
 
 
 static void
 process_shorten_result(void* cls, const char* nshort)
 {
+  shorten_request = NULL;
   if (raw)
     printf("%s", nshort);
   else
     printf("%s shortened to %s\n", (char*) cls, nshort);
+  GNUNET_SCHEDULER_cancel (shutdown_task);
   GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
 }
 
@@ -100,6 +120,7 @@
   char* name = (char*) cls;
   const char* typename;
   char* string_val;
+  lookup_request = NULL;
   
   if (!raw) {
     if (rd_count == 0)
@@ -122,14 +143,16 @@
       printf("Got %s record: %s\n", typename, string_val);
 
   }
-
+  GNUNET_SCHEDULER_cancel (shutdown_task);
   GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
 }
 
 static void
 process_auth_result(void* cls, const char* auth)
 {
+  getauth_request = NULL;
   printf ("%s\n", auth);
+  GNUNET_SCHEDULER_cancel (shutdown_task);
   GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
 }
 
@@ -156,6 +179,10 @@
   struct GNUNET_CRYPTO_ShortHashCode private_zone;
   struct GNUNET_CRYPTO_ShortHashCode shorten_zone;
 
+  shorten_request = NULL;
+  lookup_request = NULL;
+  getauth_request = NULL;
+
   if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
                                                            "ZONEKEY", 
&keyfile))
   {
@@ -265,7 +292,7 @@
   
   if (NULL != shorten_name)
   {
-    GNUNET_GNS_shorten_zone (gns, shorten_name,
+    shorten_request = GNUNET_GNS_shorten_zone (gns, shorten_name,
                              &private_zone,
                              &shorten_zone,
                              zone,
@@ -277,7 +304,7 @@
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Lookup\n");
-    GNUNET_GNS_lookup_zone (gns, lookup_name,
+    lookup_request = GNUNET_GNS_lookup_zone (gns, lookup_name,
                             zone,
                             rtype,
                             GNUNET_NO, //Use DHT
@@ -287,14 +314,15 @@
 
   if (NULL != auth_name)
   {
-    GNUNET_GNS_get_authority(gns, auth_name, &process_auth_result, auth_name);
+    getauth_request = GNUNET_GNS_get_authority(gns, auth_name,
+                                               &process_auth_result, 
auth_name);
   }
 
   if (NULL != shorten_key)
     GNUNET_CRYPTO_rsa_key_free (shorten_key);
   
-  // FIXME: do work here...
-  //GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
+  shutdown_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
+                                                &do_shutdown, NULL);
 }
 
 

Modified: gnunet/src/include/gnunet_gns_service.h
===================================================================
--- gnunet/src/include/gnunet_gns_service.h     2012-07-11 20:24:10 UTC (rev 
22613)
+++ gnunet/src/include/gnunet_gns_service.h     2012-07-11 20:43:26 UTC (rev 
22614)
@@ -52,15 +52,21 @@
 struct GNUNET_GNS_Handle;
 
 /**
- * Handle to control a get operation.
+ * Handle to control a lookup operation.
  */
-struct GNUNET_GNS_LookupHandle;
+struct GNUNET_GNS_LookupRequest;
 
 /**
- * Handle to control a shorten operation
+ * Handle to control a shorten operation.
  */
+struct GNUNET_GNS_ShortenRequest;
 
 /**
+ * Handle to control a get authority operation
+ */
+struct GNUNET_GNS_GetAuthRequest;
+
+/**
  * Record types
  * Based on GNUNET_DNSPARSER_TYPEs (standard DNS)
  */
@@ -304,7 +310,7 @@
  * @param gar the lookup request to cancel
  */
 void
-GNUNET_GNS_cancel_get_auth_request (struct GNUNET_GNS_GetAuthRequest *gar)
+GNUNET_GNS_cancel_get_auth_request (struct GNUNET_GNS_GetAuthRequest *gar);
 
 #if 0                           /* keep Emacsens' auto-indent happy */
 {




reply via email to

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