gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r20261 - gnunet/src/fs
Date: Mon, 5 Mar 2012 01:18:36 +0100

Author: grothoff
Date: 2012-03-05 01:18:35 +0100 (Mon, 05 Mar 2012)
New Revision: 20261

Modified:
   gnunet/src/fs/fs_search.c
Log:
-misc bugfixes

Modified: gnunet/src/fs/fs_search.c
===================================================================
--- gnunet/src/fs/fs_search.c   2012-03-05 00:16:00 UTC (rev 20260)
+++ gnunet/src/fs/fs_search.c   2012-03-05 00:18:35 UTC (rev 20261)
@@ -1443,6 +1443,30 @@
 
 
 /**
+ * Signal stop for the given search result.
+ *
+ * @param cls the global FS handle
+ * @param key the key for the search result (unused)
+ * @param value the search result to free
+ * @return GNUNET_OK
+ */
+static int
+search_result_stop (void *cls, const GNUNET_HashCode * key, void *value)
+{
+  struct GNUNET_FS_SearchContext *sc = cls;
+  struct GNUNET_FS_SearchResult *sr = value;
+  struct GNUNET_FS_ProgressInfo pi;
+
+  pi.status = GNUNET_FS_STATUS_SEARCH_RESULT_STOPPED;
+  pi.value.search.specifics.result_stopped.cctx = sr->client_info;
+  pi.value.search.specifics.result_stopped.meta = sr->meta;
+  pi.value.search.specifics.result_stopped.uri = sr->uri;
+  sr->client_info = GNUNET_FS_search_make_status_ (&pi, sc);
+  return GNUNET_OK;
+}
+
+
+/**
  * Free the given search result.
  *
  * @param cls the global FS handle
@@ -1480,11 +1504,6 @@
     GNUNET_FS_search_stop (sr->update_search);
     GNUNET_assert (sr->update_search == NULL);
   }
-  pi.status = GNUNET_FS_STATUS_SEARCH_RESULT_STOPPED;
-  pi.value.search.specifics.result_stopped.cctx = sr->client_info;
-  pi.value.search.specifics.result_stopped.meta = sr->meta;
-  pi.value.search.specifics.result_stopped.uri = sr->uri;
-  sr->client_info = GNUNET_FS_search_make_status_ (&pi, sc);
   GNUNET_break (NULL == sr->client_info);
   GNUNET_free_non_null (sr->serialization);
   GNUNET_FS_uri_destroy (sr->uri);
@@ -1512,6 +1531,8 @@
 
   if (sc->top != NULL)
     GNUNET_FS_end_top (sc->h, sc->top);
+  GNUNET_CONTAINER_multihashmap_iterate (sc->master_result_map,
+                                         &search_result_stop, sc);
   if (sc->psearch_result != NULL)
     sc->psearch_result->update_search = NULL;
   if (sc->serialization != NULL)




reply via email to

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