-licenses, dce, etc
[oweals/gnunet.git] / src / gns / test_gns_simple_zkey_lookup.c
index b2d38867b19db063a60be8f6ed105336a153b590..a1cef1828d91d060806c04cbc323fb1267d95cbf 100644 (file)
@@ -75,6 +75,7 @@ struct GNUNET_CRYPTO_ShortHashCode bob_hash;
 static void
 end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
+  die_task = GNUNET_SCHEDULER_NO_TASK;
   if (NULL != gns_handle)
   {
     GNUNET_GNS_disconnect(gns_handle);
@@ -98,6 +99,14 @@ end_badly_now ()
   die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL);
 }
 
+static void shutdown_task (void *cls,
+                           const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  GNUNET_GNS_disconnect(gns_handle);
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n");
+  GNUNET_SCHEDULER_shutdown ();
+}
+
 static void
 on_lookup_result(void *cls, uint32_t rd_count,
                  const struct GNUNET_NAMESTORE_RecordData *rd)
@@ -112,8 +121,8 @@ on_lookup_result(void *cls, uint32_t rd_count,
       die_task = GNUNET_SCHEDULER_NO_TASK;
   }
 
-
   GNUNET_NAMESTORE_disconnect (namestore_handle);
+  namestore_handle = NULL;
   if (rd_count == 0)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -145,10 +154,8 @@ on_lookup_result(void *cls, uint32_t rd_count,
       }
     }
   }
-
-  GNUNET_GNS_disconnect(gns_handle);
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n");
-  GNUNET_SCHEDULER_shutdown ();
+  
+  GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
 }
 /**
  * Function scheduled to be run on the successful start of services
@@ -161,9 +168,7 @@ commence_testing (void *cls, int32_t success, const char *emsg)
   char* pos;
   struct GNUNET_CRYPTO_ShortHashAsciiEncoded hash_str;
   
-
   gns_handle = GNUNET_GNS_connect(cfg);
-
   if (NULL == gns_handle)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,