aboutsummaryrefslogtreecommitdiff
path: root/src/fs/fs_search.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-05-04 13:26:08 +0000
committerChristian Grothoff <christian@grothoff.org>2010-05-04 13:26:08 +0000
commita7702e62f74942cef0f15006ba77ce53bd9c9233 (patch)
tree739fb7912941aef657e41a961fb72b50d0b20fda /src/fs/fs_search.c
parent3ede3725b99f21a0961f7852b3483eb0f7e2dfec (diff)
downloadgnunet-a7702e62f74942cef0f15006ba77ce53bd9c9233.tar.gz
gnunet-a7702e62f74942cef0f15006ba77ce53bd9c9233.zip
cleaning up serialization pdir structure mess
Diffstat (limited to 'src/fs/fs_search.c')
-rw-r--r--src/fs/fs_search.c40
1 files changed, 14 insertions, 26 deletions
diff --git a/src/fs/fs_search.c b/src/fs/fs_search.c
index f36b46a16..6c4224d1e 100644
--- a/src/fs/fs_search.c
+++ b/src/fs/fs_search.c
@@ -1407,7 +1407,6 @@ search_result_free (void *cls,
1407{ 1407{
1408 struct GNUNET_FS_SearchContext *sc = cls; 1408 struct GNUNET_FS_SearchContext *sc = cls;
1409 struct GNUNET_FS_Handle *h = sc->h; 1409 struct GNUNET_FS_Handle *h = sc->h;
1410 char pbuf[32];
1411 struct GNUNET_FS_SearchResult *sr = value; 1410 struct GNUNET_FS_SearchResult *sr = value;
1412 struct GNUNET_FS_ProgressInfo pi; 1411 struct GNUNET_FS_ProgressInfo pi;
1413 1412
@@ -1434,19 +1433,7 @@ search_result_free (void *cls,
1434 pi.value.search.specifics.result_stopped.uri = sr->uri; 1433 pi.value.search.specifics.result_stopped.uri = sr->uri;
1435 sr->client_info = GNUNET_FS_search_make_status_ (&pi, sc); 1434 sr->client_info = GNUNET_FS_search_make_status_ (&pi, sc);
1436 GNUNET_break (NULL == sr->client_info); 1435 GNUNET_break (NULL == sr->client_info);
1437 if (sr->serialization != NULL) 1436 GNUNET_free_non_null (sr->serialization);
1438 {
1439 GNUNET_snprintf (pbuf,
1440 sizeof (pbuf),
1441 "%s%s%s",
1442 GNUNET_FS_SYNC_PATH_SEARCH_RESULT,
1443 DIR_SEPARATOR_STR,
1444 sc->serialization);
1445 GNUNET_FS_remove_sync_file_ (sc->h,
1446 pbuf,
1447 sr->serialization);
1448 GNUNET_free (sr->serialization);
1449 }
1450 GNUNET_FS_uri_destroy (sr->uri); 1437 GNUNET_FS_uri_destroy (sr->uri);
1451 GNUNET_CONTAINER_meta_data_destroy (sr->meta); 1438 GNUNET_CONTAINER_meta_data_destroy (sr->meta);
1452 if (sr->probe_ctx != NULL) 1439 if (sr->probe_ctx != NULL)
@@ -1470,16 +1457,9 @@ GNUNET_FS_search_stop (struct GNUNET_FS_SearchContext *sc)
1470 struct GNUNET_FS_ProgressInfo pi; 1457 struct GNUNET_FS_ProgressInfo pi;
1471 unsigned int i; 1458 unsigned int i;
1472 struct GNUNET_FS_SearchContext *parent; 1459 struct GNUNET_FS_SearchContext *parent;
1473 int had_result;
1474 1460
1475 if (sc->top != NULL) 1461 if (sc->top != NULL)
1476 GNUNET_FS_end_top (sc->h, sc->top); 1462 GNUNET_FS_end_top (sc->h, sc->top);
1477 if (sc->serialization != NULL)
1478 GNUNET_FS_remove_sync_file_ (sc->h,
1479 (sc->parent != NULL)
1480 ? GNUNET_FS_SYNC_PATH_CHILD_SEARCH
1481 : GNUNET_FS_SYNC_PATH_MASTER_SEARCH,
1482 sc->serialization);
1483 if (NULL != (parent = sc->parent)) 1463 if (NULL != (parent = sc->parent))
1484 { 1464 {
1485 GNUNET_CONTAINER_DLL_remove (parent->child_head, 1465 GNUNET_CONTAINER_DLL_remove (parent->child_head,
@@ -1489,14 +1469,22 @@ GNUNET_FS_search_stop (struct GNUNET_FS_SearchContext *sc)
1489 } 1469 }
1490 while (NULL != sc->child_head) 1470 while (NULL != sc->child_head)
1491 GNUNET_FS_search_stop (sc->child_head); 1471 GNUNET_FS_search_stop (sc->child_head);
1492 had_result = (0 != GNUNET_CONTAINER_multihashmap_size (sc->master_result_map)) ? GNUNET_YES : GNUNET_NO;
1493 GNUNET_CONTAINER_multihashmap_iterate (sc->master_result_map, 1472 GNUNET_CONTAINER_multihashmap_iterate (sc->master_result_map,
1494 &search_result_free, 1473 &search_result_free,
1495 sc); 1474 sc);
1496 if (had_result) 1475 if (sc->serialization != NULL)
1497 GNUNET_FS_remove_sync_dir_ (sc->h, 1476 {
1498 GNUNET_FS_SYNC_PATH_SEARCH_RESULT, 1477 GNUNET_FS_remove_sync_file_ (sc->h,
1499 sc->serialization); 1478 (sc->parent != NULL)
1479 ? GNUNET_FS_SYNC_PATH_CHILD_SEARCH
1480 : GNUNET_FS_SYNC_PATH_MASTER_SEARCH,
1481 sc->serialization);
1482 GNUNET_FS_remove_sync_dir_ (sc->h,
1483 (sc->parent != NULL)
1484 ? GNUNET_FS_SYNC_PATH_CHILD_SEARCH
1485 : GNUNET_FS_SYNC_PATH_MASTER_SEARCH,
1486 sc->serialization);
1487 }
1500 pi.status = GNUNET_FS_STATUS_SEARCH_STOPPED; 1488 pi.status = GNUNET_FS_STATUS_SEARCH_STOPPED;
1501 sc->client_info = GNUNET_FS_search_make_status_ (&pi, sc); 1489 sc->client_info = GNUNET_FS_search_make_status_ (&pi, sc);
1502 GNUNET_break (NULL == sc->client_info); 1490 GNUNET_break (NULL == sc->client_info);