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
abort_unindex_task (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc)
{
- GNUNET_FS_unindex_stop (unindex);
- unindex = NULL;
- GNUNET_DISK_directory_remove (fn);
- GNUNET_free (fn);
- fn = NULL;
+ if (unindex != NULL)
+ {
+ GNUNET_FS_unindex_stop (unindex);
+ unindex = NULL;
+ }
+ if (fn != NULL)
+ {
+ GNUNET_DISK_directory_remove (fn);
+ GNUNET_free (fn);
+ fn = NULL;
+ }
}
GNUNET_assert (unindex != NULL);
break;
case GNUNET_FS_STATUS_UNINDEX_COMPLETED:
- consider_restart (event->status);
printf ("Unindex complete, %llu kbps.\n",
(unsigned long long) (FILESIZE * 1000 / (1+GNUNET_TIME_absolute_get_duration (start).value) / 1024));
GNUNET_SCHEDULER_add_continuation (sched,
(unsigned long long) event->value.unindex.specifics.progress.offset);
#endif
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;
+ return "publish-context";
+ }
+ break;
+ case GNUNET_FS_STATUS_UNINDEX_SUSPEND:
+ GNUNET_assert (event->value.unindex.uc == unindex);
+ unindex = NULL;
+ break;
+ case GNUNET_FS_STATUS_UNINDEX_RESUME:
+ GNUNET_assert (NULL == unindex);
+ unindex = event->value.unindex.uc;
+ return "unindex";
case GNUNET_FS_STATUS_PUBLISH_ERROR:
fprintf (stderr,
"Error publishing file: %s\n",
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);
GNUNET_assert (0 == event->value.unindex.completed);
break;
case GNUNET_FS_STATUS_UNINDEX_STOPPED:
- consider_restart (event->status);
GNUNET_assert (unindex == event->value.unindex.uc);
GNUNET_SCHEDULER_add_continuation (sched,
&abort_publish_task,
"nohelp", options, &run, NULL);
stop_arm (&p1);
GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-unindex/");
- GNUNET_DISK_directory_remove (fn);
- GNUNET_free_non_null (fn);
+ if (NULL != fn)
+ {
+ GNUNET_DISK_directory_remove (fn);
+ GNUNET_free (fn);
+ }
return 0;
}