[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r33766 - gnunet/src/fs,
gnunet <=