fixing shutdown
authorChristian Grothoff <christian@grothoff.org>
Mon, 19 Apr 2010 11:00:23 +0000 (11:00 +0000)
committerChristian Grothoff <christian@grothoff.org>
Mon, 19 Apr 2010 11:00:23 +0000 (11:00 +0000)
src/fs/gnunet-service-fs_drq.c
src/fs/test_fs_test_lib.c

index 43e138e131439c0359e1ac0a36ef7f16b3159dd4..8edcacf3dcc9ad584a94d59e5569a78b2feaf586 100644 (file)
@@ -310,11 +310,17 @@ shutdown_task (void *cls,
   drq_tail = NULL;
   if (drq_running != NULL)
     {
-      GNUNET_SCHEDULER_cancel (sched,
-                              drq_running->task);
-      drq_running->iter (drq_running->iter_cls,
-                        NULL, 0, NULL, 0, 0, 0, 
-                        GNUNET_TIME_UNIT_ZERO_ABS, 0);
+      if (drq_running->task != GNUNET_SCHEDULER_NO_TASK)
+       {
+         GNUNET_SCHEDULER_cancel (sched,
+                                  drq_running->task);
+       }
+      if (drq_running->iter != NULL)
+       {
+         drq_running->iter (drq_running->iter_cls,
+                            NULL, 0, NULL, 0, 0, 0, 
+                            GNUNET_TIME_UNIT_ZERO_ABS, 0);
+       }
       GNUNET_free (drq_running);
       drq_running = NULL;
     }
index b575e68c7b3f4e424d26f3164a443f19007c7370..da00e6e5e2b3c0ab464ebf0bf12bf2c948943469 100644 (file)
@@ -105,6 +105,7 @@ do_publish (void *cls,
       GNUNET_SCHEDULER_add_now (sched,
                                &do_stop,
                                NULL);
+      return;
     }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "Publishing %llu bytes\n",