- GNUNET_assert (daemon->publish_cont == NULL);
- daemon->publish_cont = cont;
- daemon->publish_cont_cls = cont_cls;
- daemon->publish_seed = seed;
- daemon->verbose = verbose;
- bo.expiration_time = GNUNET_TIME_relative_to_absolute (CONTENT_LIFETIME);
- bo.anonymity_level = anonymity;
- bo.content_priority = 42;
- bo.replication_level = 1;
- if (GNUNET_YES == do_index)
- {
- GNUNET_assert (daemon->publish_tmp_file == NULL);
- daemon->publish_tmp_file = GNUNET_DISK_mktemp ("fs-test-publish-index");
- GNUNET_assert (daemon->publish_tmp_file != NULL);
- fh = GNUNET_DISK_file_open (daemon->publish_tmp_file,
- GNUNET_DISK_OPEN_WRITE |
- GNUNET_DISK_OPEN_CREATE,
- GNUNET_DISK_PERM_USER_READ |
- GNUNET_DISK_PERM_USER_WRITE);
- GNUNET_assert (NULL != fh);
- off = 0;
- while (off < size)
- {
- bsize = GNUNET_MIN (sizeof (buf), size - off);
- emsg = NULL;
- GNUNET_assert (bsize == file_generator (daemon, off, bsize, buf, &emsg));
- GNUNET_assert (emsg == NULL);
- GNUNET_assert (bsize == GNUNET_DISK_file_write (fh, buf, bsize));
- off += bsize;
- }
- GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fh));
- fi = GNUNET_FS_file_information_create_from_file (daemon->fs, daemon,
- daemon->publish_tmp_file,
- NULL, NULL, do_index,
- &bo);
- }
- else
- {
- fi = GNUNET_FS_file_information_create_from_reader (daemon->fs, daemon,
- size, &file_generator,
- daemon, NULL, NULL,
- do_index, &bo);
- }
- daemon->publish_context =
- GNUNET_FS_publish_start (daemon->fs, fi, NULL, NULL, NULL,
- GNUNET_FS_PUBLISH_OPTION_NONE);
- daemon->publish_timeout_task =
- GNUNET_SCHEDULER_add_delayed (timeout, &publish_timeout, daemon);