GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 2, or (at your
+ by the Free Software Foundation; either version 3, or (at your
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
case GNUNET_FS_STATUS_PUBLISH_COMPLETED:
kuri = GNUNET_FS_uri_ksk_create_from_args (1, keywords);
start = GNUNET_TIME_absolute_get ();
- search = GNUNET_FS_search_start (fs,
- kuri,
- 1,
- GNUNET_FS_SEARCH_OPTION_NONE,
- "search");
+ GNUNET_FS_search_start (fs,
+ kuri,
+ 1,
+ GNUNET_FS_SEARCH_OPTION_NONE,
+ "search");
GNUNET_FS_uri_destroy (kuri);
GNUNET_assert (search != NULL);
break;
+ case GNUNET_FS_STATUS_PUBLISH_SUSPEND:
+ if (event->value.publish.pc == publish)
+ publish = NULL;
+ break;
+ case GNUNET_FS_STATUS_PUBLISH_RESUME:
+ if (NULL == publish)
+ publish = event->value.publish.pc;
+ break;
case GNUNET_FS_STATUS_SEARCH_RESULT:
- consider_restart (event->status);
+ /* FIXME: consider_restart (event->status); cannot be tested with
+ search result since we exit here after the first one... */
#if VERBOSE
printf ("Search complete.\n");
#endif
NULL,
GNUNET_SCHEDULER_REASON_PREREQ_DONE);
break;
+ case GNUNET_FS_STATUS_SEARCH_SUSPEND:
+ if (event->value.search.sc == search)
+ search = NULL;
+ break;
+ case GNUNET_FS_STATUS_SEARCH_RESUME:
+ if (NULL == search)
+ {
+ search = event->value.search.sc;
+ return "search";
+ }
+ break;
case GNUNET_FS_STATUS_PUBLISH_START:
GNUNET_assert (0 == strcmp ("publish-context", event->value.publish.cctx));
GNUNET_assert (NULL == event->value.publish.pctx);
GNUNET_assert (1 == event->value.publish.anonymity);
break;
case GNUNET_FS_STATUS_PUBLISH_STOPPED:
- GNUNET_assert (publish == event->value.publish.sc);
+ GNUNET_assert (publish == event->value.publish.pc);
GNUNET_assert (FILESIZE == event->value.publish.size);
GNUNET_assert (1 == event->value.publish.anonymity);
GNUNET_FS_stop (fs);
case GNUNET_FS_STATUS_SEARCH_START:
consider_restart (event->status);
GNUNET_assert (search == NULL);
+ search = event->value.search.sc;
GNUNET_assert (0 == strcmp ("search", event->value.search.cctx));
GNUNET_assert (1 == event->value.search.anonymity);
break;
case GNUNET_FS_STATUS_SEARCH_RESULT_STOPPED:
break;
case GNUNET_FS_STATUS_SEARCH_STOPPED:
- consider_restart (event->status);
GNUNET_assert (search == event->value.search.sc);
GNUNET_SCHEDULER_add_continuation (sched,
&abort_publish_task,
NULL,
GNUNET_SCHEDULER_REASON_PREREQ_DONE);
+ search = NULL;
break;
default:
fprintf (stderr,
GNUNET_GETOPT_OPTION_END
};
+ GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-search/");
GNUNET_log_setup ("test_fs_search_persistence",
#if VERBOSE
"DEBUG",
#endif
NULL);
GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1,
- argvx, "test-fs-search-persistencce",
+ argvx, "test-fs-search-persistence",
"nohelp", options, &run, NULL);
stop_arm (&p1);
GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-search/");