gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r33766 - gnunet/src/fs


From: gnunet
Subject: [GNUnet-SVN] r33766 - gnunet/src/fs
Date: Mon, 23 Jun 2014 10:20:01 +0200

Author: grothoff
Date: 2014-06-23 10:20:01 +0200 (Mon, 23 Jun 2014)
New Revision: 33766

Modified:
   gnunet/src/fs/fs_publish_ublock.c
   gnunet/src/fs/gnunet-publish.c
   gnunet/src/fs/test_fs_uri.c
Log:
-fix SKS publishing in simulate-only mode

Modified: gnunet/src/fs/fs_publish_ublock.c
===================================================================
--- gnunet/src/fs/fs_publish_ublock.c   2014-06-23 08:18:32 UTC (rev 33765)
+++ gnunet/src/fs/fs_publish_ublock.c   2014-06-23 08:20:01 UTC (rev 33766)
@@ -108,11 +108,17 @@
    * Handle for active datastore operation.
    */
   struct GNUNET_DATASTORE_QueueEntry *qre;
+
+  /**
+   * Task to run continuation asynchronously.
+   */
+  GNUNET_SCHEDULER_TaskIdentifier task;
+
 };
 
 
 /**
- * Continuation of "GNUNET_FS_publish_ublock_".
+ * Continuation of #GNUNET_FS_publish_ublock_().
  *
  * @param cls closure of type "struct GNUNET_FS_PublishUblockContext*"
  * @param success GNUNET_SYSERR on failure (including timeout/queue drop)
@@ -138,6 +144,24 @@
 
 
 /**
+ * Run the continuation.
+ *
+ * @param cls the `struct GNUNET_FS_PublishUblockContext *`
+ * @param tc scheduler context
+ */
+static void
+run_cont (void *cls,
+          const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  struct GNUNET_FS_PublishUblockContext *uc = cls;
+
+  uc->task = GNUNET_SCHEDULER_NO_TASK;
+  uc->cont (uc->cont_cls, NULL);
+  GNUNET_free (uc);
+}
+
+
+/**
  * Publish a UBlock.
  *
  * @param h handle to the file sharing subsystem
@@ -258,14 +282,26 @@
   uc = GNUNET_new (struct GNUNET_FS_PublishUblockContext);
   uc->cont = cont;
   uc->cont_cls = cont_cls;
-  uc->qre =
-    GNUNET_DATASTORE_put (dsh, 0, &query,
-                         ulen + slen + mdsize + sizeof (struct UBlock),
-                         ub_enc, GNUNET_BLOCK_TYPE_FS_UBLOCK,
-                         bo->content_priority, bo->anonymity_level,
-                         bo->replication_level, bo->expiration_time,
-                         -2, 1, GNUNET_CONSTANTS_SERVICE_TIMEOUT,
-                         &ublock_put_cont, uc);
+  if (NULL != dsh)
+  {
+    uc->qre =
+      GNUNET_DATASTORE_put (dsh, 0, &query,
+                            ulen + slen + mdsize + sizeof (struct UBlock),
+                            ub_enc,
+                            GNUNET_BLOCK_TYPE_FS_UBLOCK,
+                            bo->content_priority,
+                            bo->anonymity_level,
+                            bo->replication_level,
+                            bo->expiration_time,
+                            -2, 1,
+                            GNUNET_CONSTANTS_SERVICE_TIMEOUT,
+                            &ublock_put_cont, uc);
+  }
+  else
+  {
+    uc->task = GNUNET_SCHEDULER_add_now (&run_cont,
+                                         uc);
+  }
   return uc;
 }
 
@@ -278,6 +314,11 @@
 void
 GNUNET_FS_publish_ublock_cancel_ (struct GNUNET_FS_PublishUblockContext *uc)
 {
-  GNUNET_DATASTORE_cancel (uc->qre);
+  if (NULL != uc->qre)
+    GNUNET_DATASTORE_cancel (uc->qre);
+  if (GNUNET_SCHEDULER_NO_TASK != uc->task)
+    GNUNET_SCHEDULER_cancel (uc->task);
   GNUNET_free (uc);
 }
+
+/* end of fs_publish_ublock.c */

Modified: gnunet/src/fs/gnunet-publish.c
===================================================================
--- gnunet/src/fs/gnunet-publish.c      2014-06-23 08:18:32 UTC (rev 33765)
+++ gnunet/src/fs/gnunet-publish.c      2014-06-23 08:20:01 UTC (rev 33766)
@@ -448,7 +448,8 @@
  * @param emsg error message, NULL on success
  */
 static void
-uri_ksk_continuation (void *cls, const struct GNUNET_FS_Uri *ksk_uri,
+uri_ksk_continuation (void *cls,
+                      const struct GNUNET_FS_Uri *ksk_uri,
                       const char *emsg)
 {
   const struct GNUNET_CRYPTO_EcdsaPrivateKey *priv;

Modified: gnunet/src/fs/test_fs_uri.c
===================================================================
--- gnunet/src/fs/test_fs_uri.c 2014-06-23 08:18:32 UTC (rev 33765)
+++ gnunet/src/fs/test_fs_uri.c 2014-06-23 08:20:01 UTC (rev 33766)
@@ -85,7 +85,7 @@
 
   baseURI =
       GNUNET_FS_uri_parse
-      
("gnunet://fs/chk/C282GG70GKK41O4551011DO413KFBVTVMQG1OG30I0K4045N0G41HAPB82G680A02JRVVFO8URVRU2F159011DO41000000022RG820.RNVVVVOOLCLK065B5D04HTNVNSIB2AI022RG8200HSLK1CO1000ATQ98824DMA2032LIMG50CG0K057NVUVG200000H000004400000.42",
+      
("gnunet://fs/chk/4QZP479A9SKGFNMQ2ZBCYE71YV2QMTVGWTVPB6A10ASVCKXDHB05DKPSC7ZF6E9P9W1VE47394EQY7NXA47Q6R35M7P1MJPGP59D1Z8.D54QD1K5XCG5878T6YZ19AM60MQ6FC0YNVK7QY08KK0KM0FJJ3KQWYG112FN5T07KN7J0X35DF6WVBT9B8ZMZ3X2BXJ22X3KFQ6MV2G.15999",
        &emsg);
   GNUNET_assert (baseURI != NULL);
   GNUNET_assert (emsg == NULL);




reply via email to

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