-fix time assertion introduce in last patch
[oweals/gnunet.git] / src / dht / dht_api.c
index 7b83c14c3b380b77a9ddd482bd3a618bef723264..0a35ba9889a88b2fac894c73ea9cd89ffd53c15c 100644 (file)
@@ -599,6 +599,7 @@ transmit_pending (void *cls,
   struct PendingMessage *head;
   size_t tsize;
 
+
   handle->th = NULL;
   if (NULL == buf)
   {
@@ -635,6 +636,7 @@ transmit_pending (void *cls,
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG, "Starting to process replies from DHT\n");
     handle->in_receive = GNUNET_YES;
+    
     GNUNET_CLIENT_receive (handle->client, &service_message_handler, handle,
                            GNUNET_TIME_UNIT_FOREVER_REL);
   }
@@ -900,6 +902,7 @@ service_message_handler (void *cls, const struct GNUNET_MessageHeader *msg)
   uint16_t msize;
   int ret;
 
+
   if (NULL == msg)
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG,
@@ -1003,7 +1006,7 @@ GNUNET_DHT_connect (const struct GNUNET_CONFIGURATION_Handle *cfg,
   handle->cfg = cfg;
   handle->uid_gen =
       GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, UINT64_MAX);
-  handle->active_requests = GNUNET_CONTAINER_multihashmap_create (ht_len, GNUNET_NO);
+  handle->active_requests = GNUNET_CONTAINER_multihashmap_create (ht_len, GNUNET_YES);
   if (GNUNET_NO == try_connect (handle))
   {
     GNUNET_DHT_disconnect (handle);
@@ -1133,14 +1136,14 @@ mark_put_message_gone (void *cls,
  */
 struct GNUNET_DHT_PutHandle *
 GNUNET_DHT_put (struct GNUNET_DHT_Handle *handle,
-               const struct GNUNET_HashCode * key,
+                       const struct GNUNET_HashCode * key,
                 uint32_t desired_replication_level,
                 enum GNUNET_DHT_RouteOption options,
                 enum GNUNET_BLOCK_Type type, size_t size,
-               const void *data,
+                           const void *data,
                 struct GNUNET_TIME_Absolute exp,
                 struct GNUNET_TIME_Relative timeout,
-               GNUNET_DHT_PutContinuation cont,
+                           GNUNET_DHT_PutContinuation cont,
                 void *cont_cls)
 {
   struct GNUNET_DHT_ClientPutMessage *put_msg;
@@ -1148,6 +1151,7 @@ GNUNET_DHT_put (struct GNUNET_DHT_Handle *handle,
   struct PendingMessage *pending;
   struct GNUNET_DHT_PutHandle *ph;
 
+
   msize = sizeof (struct GNUNET_DHT_ClientPutMessage) + size;
   if ((msize >= GNUNET_SERVER_MAX_MESSAGE_SIZE) ||
       (size >= GNUNET_SERVER_MAX_MESSAGE_SIZE))
@@ -1280,12 +1284,15 @@ GNUNET_DHT_get_start (struct GNUNET_DHT_Handle *handle,
                                pending);
   pending->in_pending_queue = GNUNET_YES;
   get_handle = GNUNET_new (struct GNUNET_DHT_GetHandle);
+  get_handle->key = *key;
   get_handle->dht_handle = handle;
   get_handle->iter = iter;
   get_handle->iter_cls = iter_cls;
   get_handle->message = pending;
   get_handle->unique_id = get_msg->unique_id;
-  GNUNET_CONTAINER_multihashmap_put (handle->active_requests, key, get_handle,
+  GNUNET_CONTAINER_multihashmap_put (handle->active_requests,
+                                     &get_handle->key,
+                                     get_handle,
                                      GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
   process_pending_messages (handle);
   return get_handle;
@@ -1363,7 +1370,7 @@ GNUNET_DHT_get_stop (struct GNUNET_DHT_GetHandle *get_handle)
   /* remove 'GET' from active status */
   GNUNET_assert (GNUNET_YES ==
                  GNUNET_CONTAINER_multihashmap_remove (handle->active_requests,
-                                                       &get_msg->key,
+                                                       &get_handle->key,
                                                        get_handle));
   if (GNUNET_YES == get_handle->message->in_pending_queue)
   {
@@ -1416,7 +1423,7 @@ GNUNET_DHT_monitor_start (struct GNUNET_DHT_Handle *handle,
   h->dht_handle = handle;
   if (NULL != key)
   {
-    h->key = GNUNET_new(struct GNUNET_HashCode);
+    h->key = GNUNET_new (struct GNUNET_HashCode);
     *h->key = *key;
   }
 
@@ -1471,12 +1478,13 @@ GNUNET_DHT_monitor_stop (struct GNUNET_DHT_MonitorHandle *handle)
   m->header.type = htons (GNUNET_MESSAGE_TYPE_DHT_MONITOR_STOP);
   m->header.size = htons (sizeof (struct GNUNET_DHT_MonitorStartStopMessage));
   m->type = htonl(handle->type);
-  m->get = htons(NULL != handle->get_cb);
+  m->get = htons (NULL != handle->get_cb);
   m->get_resp = htons(NULL != handle->get_resp_cb);
-  m->put = htons(NULL != handle->put_cb);
-  if (NULL != handle->key) {
-    m->filter_key = htons(1);
-    memcpy (&m->key, handle->key, sizeof(struct GNUNET_HashCode));
+  m->put = htons (NULL != handle->put_cb);
+  if (NULL != handle->key)
+  {
+    m->filter_key = htons (1);
+    m->key = *handle->key;
   }
   GNUNET_CONTAINER_DLL_insert (handle->dht_handle->pending_head,
                                handle->dht_handle->pending_tail,