fix
[oweals/gnunet.git] / src / fs / test_fs_download.c
index afb95bc7189aa71ae4f14367a21bf19f853dd016..5cfbc391ba5e1e52fcc5ba5a18a3c57dae873df9 100644 (file)
@@ -29,7 +29,7 @@
 #include "gnunet_arm_service.h"
 #include "gnunet_fs_service.h"
 
-#define VERBOSE GNUNET_YES
+#define VERBOSE GNUNET_NO
 
 #define START_ARM GNUNET_YES
 
@@ -103,6 +103,13 @@ abort_publish_task (void *cls,
     }
 }
 
+static void
+stop_fs_task (void *cls,
+             const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  GNUNET_FS_stop (fs);
+  fs = NULL;
+}
 
 static void
 abort_download_task (void *cls,
@@ -149,7 +156,7 @@ progress_cb (void *cls,
       download = GNUNET_FS_download_start (fs,
                                           event->value.publish.specifics.completed.chk_uri,
                                           NULL,
-                                          fn,
+                                          fn, NULL,
                                           0,
                                           FILESIZE,
                                           1,
@@ -193,6 +200,9 @@ progress_cb (void *cls,
                                &abort_download_task,
                                NULL);
       break;
+    case GNUNET_FS_STATUS_DOWNLOAD_ACTIVE:
+    case GNUNET_FS_STATUS_DOWNLOAD_INACTIVE:
+      break;
     case GNUNET_FS_STATUS_PUBLISH_START:
       GNUNET_assert (0 == strcmp ("publish-context", event->value.publish.cctx));
       GNUNET_assert (NULL == event->value.publish.pctx);
@@ -201,11 +211,12 @@ progress_cb (void *cls,
       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);
-      fs = NULL;
+      GNUNET_SCHEDULER_add_now (sched,
+                               &stop_fs_task,
+                               NULL);
       break;
     case GNUNET_FS_STATUS_DOWNLOAD_START:
       GNUNET_assert (download == NULL);
@@ -246,7 +257,6 @@ setup_peer (struct PeerContext *p, const char *cfgname)
                                         "-c", cfgname, NULL);
 #endif
   GNUNET_assert (GNUNET_OK == GNUNET_CONFIGURATION_load (p->cfg, cfgname));
-  GNUNET_ARM_start_services (p->cfg, sched, "core", NULL);
 }
 
 
@@ -297,7 +307,8 @@ run (void *cls,
     buf[i] = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, 256);
   meta = GNUNET_CONTAINER_meta_data_create ();
   kuri = GNUNET_FS_uri_ksk_create_from_args (2, keywords);
-  fi = GNUNET_FS_file_information_create_from_data ("publish-context",
+  fi = GNUNET_FS_file_information_create_from_data (fs,
+                                                   "publish-context",
                                                    FILESIZE,
                                                    buf,
                                                    kuri,