[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r16409 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r16409 - gnunet/src/transport |
Date: |
Sat, 6 Aug 2011 18:48:46 +0200 |
Author: grothoff
Date: 2011-08-06 18:48:46 +0200 (Sat, 06 Aug 2011)
New Revision: 16409
Modified:
gnunet/src/transport/gnunet-service-transport_validation.c
Log:
remember notifies
Modified: gnunet/src/transport/gnunet-service-transport_validation.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_validation.c 2011-08-06
16:44:10 UTC (rev 16408)
+++ gnunet/src/transport/gnunet-service-transport_validation.c 2011-08-06
16:48:46 UTC (rev 16409)
@@ -177,7 +177,12 @@
*/
static struct GNUNET_CONTAINER_MultiHashMap *validation_map;
+/**
+ * Map of PeerIdentities to 'struct GST_ValidationIteratorContext's.
+ */
+static struct GNUNET_CONTAINER_MultiHashMap *notify_map;
+
/**
* Start the validation subsystem.
*/
@@ -185,6 +190,7 @@
GST_validation_start ()
{
validation_map = GNUNET_CONTAINER_multihashmap_create (VALIDATION_MAP_SIZE);
+ notify_map = GNUNET_CONTAINER_multihashmap_create (VALIDATION_MAP_SIZE);
}
@@ -227,6 +233,9 @@
NULL);
GNUNET_CONTAINER_multihashmap_destroy (validation_map);
validation_map = NULL;
+ GNUNET_assert (GNUNET_CONTAINER_multihashmap_size (notify_map) == 0);
+ GNUNET_CONTAINER_multihashmap_destroy (notify_map);
+ notify_map = NULL;
while (NULL != (chvc = chvc_head))
{
GNUNET_CONTAINER_DLL_remove (chvc_head,
@@ -482,6 +491,11 @@
* Closure for 'cb'.
*/
void *cb_cls;
+
+ /**
+ * Which peer are we monitoring?
+ */
+ struct GNUNET_PeerIdentity target;
};
@@ -535,6 +549,7 @@
vic = GNUNET_malloc (sizeof (struct GST_ValidationIteratorContext));
vic->cb = cb;
vic->cb_cls = cb_cls;
+ vic->target = *target;
GNUNET_CONTAINER_multihashmap_get_multiple (validation_map,
&target->hashPubKey,
&iterate_addresses,
@@ -544,7 +559,10 @@
GNUNET_free (vic);
return NULL;
}
- /* FIXME: install 'vic' somewhere */
+ GNUNET_CONTAINER_multihashmap_put (notify_map,
+ &target->hashPubKey,
+ vic,
+
GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
return vic;
}
@@ -557,7 +575,10 @@
void
GST_validation_get_addresses_cancel (struct GST_ValidationIteratorContext *ctx)
{
- /* FIXME: remove 'vic' from DS */
+ GNUNET_assert (GNUNET_OK ==
+ GNUNET_CONTAINER_multihashmap_remove (notify_map,
+ &ctx->target.hashPubKey,
+ ctx));
GNUNET_free (ctx);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r16409 - gnunet/src/transport,
gnunet <=