Fix for #4553
[oweals/gnunet.git] / src / fs / fs_search.c
index c85d6d3df62d5e07225d59814e74bc1773e3c105..eaabac7462d2a1a0513d227de100bd1b707b2217 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2001-2014 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2001-2014 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -15,7 +15,7 @@
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
      Free Software Foundation, Inc., 59 Tem ple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Boston, MA 02110-1301, USA.
 */
 /**
  * @file fs/fs_search.c
@@ -215,15 +215,13 @@ signal_probe_result (struct GNUNET_FS_SearchResult *sr)
  * Handle the case where we have failed to receive a response for our probe.
  *
  * @param cls our `struct GNUNET_FS_SearchResult *`
- * @param tc scheduler context
  */
 static void
-probe_failure_handler (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+probe_failure_handler (void *cls)
 {
   struct GNUNET_FS_SearchResult *sr = cls;
 
-  sr->probe_cancel_task = GNUNET_SCHEDULER_NO_TASK;
+  sr->probe_cancel_task = NULL;
   sr->availability_trials++;
   GNUNET_FS_download_stop (sr->probe_ctx, GNUNET_YES);
   sr->probe_ctx = NULL;
@@ -241,15 +239,13 @@ probe_failure_handler (void *cls,
  * Handle the case where we have gotten a response for our probe.
  *
  * @param cls our `struct GNUNET_FS_SearchResult *`
- * @param tc scheduler context
  */
 static void
-probe_success_handler (void *cls,
-                       const struct GNUNET_SCHEDULER_TaskContext *tc)
+probe_success_handler (void *cls)
 {
   struct GNUNET_FS_SearchResult *sr = cls;
 
-  sr->probe_cancel_task = GNUNET_SCHEDULER_NO_TASK;
+  sr->probe_cancel_task = NULL;
   sr->availability_trials++;
   sr->availability_success++;
   GNUNET_FS_download_stop (sr->probe_ctx, GNUNET_YES);
@@ -303,34 +299,34 @@ GNUNET_FS_search_probe_progress_ (void *cls,
     /* ignore */
     break;
   case GNUNET_FS_STATUS_DOWNLOAD_ERROR:
-    if (GNUNET_SCHEDULER_NO_TASK != sr->probe_cancel_task)
+    if (NULL != sr->probe_cancel_task)
     {
       GNUNET_SCHEDULER_cancel (sr->probe_cancel_task);
-      sr->probe_cancel_task = GNUNET_SCHEDULER_NO_TASK;
+      sr->probe_cancel_task = NULL;
     }
     sr->probe_cancel_task =
         GNUNET_SCHEDULER_add_delayed (sr->remaining_probe_time,
                                       &probe_failure_handler, sr);
     break;
   case GNUNET_FS_STATUS_DOWNLOAD_COMPLETED:
-    if (GNUNET_SCHEDULER_NO_TASK != sr->probe_cancel_task)
+    if (NULL != sr->probe_cancel_task)
     {
       GNUNET_SCHEDULER_cancel (sr->probe_cancel_task);
-      sr->probe_cancel_task = GNUNET_SCHEDULER_NO_TASK;
+      sr->probe_cancel_task = NULL;
     }
     sr->probe_cancel_task =
         GNUNET_SCHEDULER_add_now (&probe_success_handler, sr);
     break;
   case GNUNET_FS_STATUS_DOWNLOAD_STOPPED:
-    if (GNUNET_SCHEDULER_NO_TASK != sr->probe_cancel_task)
+    if (NULL != sr->probe_cancel_task)
     {
       GNUNET_SCHEDULER_cancel (sr->probe_cancel_task);
-      sr->probe_cancel_task = GNUNET_SCHEDULER_NO_TASK;
+      sr->probe_cancel_task = NULL;
     }
     sr = NULL;
     break;
   case GNUNET_FS_STATUS_DOWNLOAD_ACTIVE:
-    if (GNUNET_SCHEDULER_NO_TASK == sr->probe_cancel_task)
+    if (NULL == sr->probe_cancel_task)
     {
       sr->probe_active_time = GNUNET_TIME_absolute_get ();
       sr->probe_cancel_task =
@@ -339,10 +335,10 @@ GNUNET_FS_search_probe_progress_ (void *cls,
     }
     break;
   case GNUNET_FS_STATUS_DOWNLOAD_INACTIVE:
-    if (GNUNET_SCHEDULER_NO_TASK != sr->probe_cancel_task)
+    if (NULL != sr->probe_cancel_task)
     {
       GNUNET_SCHEDULER_cancel (sr->probe_cancel_task);
-      sr->probe_cancel_task = GNUNET_SCHEDULER_NO_TASK;
+      sr->probe_cancel_task = NULL;
     }
     dur = GNUNET_TIME_absolute_get_duration (sr->probe_active_time);
     sr->remaining_probe_time =
@@ -364,11 +360,9 @@ GNUNET_FS_search_probe_progress_ (void *cls,
  * Task run periodically to remind clients that a probe is active.
  *
  * @param cls the `struct GNUNET_FS_SearchResult` that we are probing for
- * @param tc scheduler context
  */
 static void
-probe_ping_task_cb (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+probe_ping_task_cb (void *cls)
 {
   struct GNUNET_FS_Handle *h = cls;
   struct GNUNET_FS_SearchResult *sr;
@@ -396,7 +390,7 @@ start_probe_ping_task (struct GNUNET_FS_SearchResult *sr)
   GNUNET_CONTAINER_DLL_insert (h->probes_head,
                                h->probes_tail,
                                sr);
-  if (GNUNET_SCHEDULER_NO_TASK == h->probe_ping_task)
+  if (NULL == h->probe_ping_task)
     h->probe_ping_task
       = GNUNET_SCHEDULER_add_now (&probe_ping_task_cb,
                                   h);
@@ -419,7 +413,7 @@ GNUNET_FS_stop_probe_ping_task_ (struct GNUNET_FS_SearchResult *sr)
   if (NULL == h->probes_head)
   {
     GNUNET_SCHEDULER_cancel (h->probe_ping_task);
-    h->probe_ping_task = GNUNET_SCHEDULER_NO_TASK;
+    h->probe_ping_task = NULL;
   }
 }
 
@@ -520,10 +514,10 @@ GNUNET_FS_search_stop_probe_ (struct GNUNET_FS_SearchResult *sr)
     sr->probe_ctx = NULL;
     GNUNET_FS_stop_probe_ping_task_ (sr);
   }
-  if (GNUNET_SCHEDULER_NO_TASK != sr->probe_cancel_task)
+  if (NULL != sr->probe_cancel_task)
   {
     GNUNET_SCHEDULER_cancel (sr->probe_cancel_task);
-    sr->probe_cancel_task = GNUNET_SCHEDULER_NO_TASK;
+    sr->probe_cancel_task = NULL;
   }
 }
 
@@ -1245,15 +1239,14 @@ schedule_transmit_search_request (struct GNUNET_FS_SearchContext *sc)
  * our queries NOW.
  *
  * @param cls our search context
- * @param tc unused
  */
 static void
-do_reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_reconnect (void *cls)
 {
   struct GNUNET_FS_SearchContext *sc = cls;
   struct GNUNET_CLIENT_Connection *client;
 
-  sc->task = GNUNET_SCHEDULER_NO_TASK;
+  sc->task = NULL;
   client = GNUNET_CLIENT_connect ("fs", sc->h->cfg);
   if (NULL == client)
   {
@@ -1446,10 +1439,10 @@ search_result_freeze_probes (void *cls,
     sr->probe_ctx = NULL;
     GNUNET_FS_stop_probe_ping_task_ (sr);
   }
-  if (GNUNET_SCHEDULER_NO_TASK != sr->probe_cancel_task)
+  if (NULL != sr->probe_cancel_task)
   {
     GNUNET_SCHEDULER_cancel (sr->probe_cancel_task);
-    sr->probe_cancel_task = GNUNET_SCHEDULER_NO_TASK;
+    sr->probe_cancel_task = NULL;
   }
   if (NULL != sr->update_search)
     GNUNET_FS_search_pause (sr->update_search);
@@ -1545,10 +1538,10 @@ GNUNET_FS_search_signal_suspend_ (void *cls)
   pi.status = GNUNET_FS_STATUS_SEARCH_SUSPEND;
   sc->client_info = GNUNET_FS_search_make_status_ (&pi, sc->h, sc);
   GNUNET_break (NULL == sc->client_info);
-  if (sc->task != GNUNET_SCHEDULER_NO_TASK)
+  if (sc->task != NULL)
   {
     GNUNET_SCHEDULER_cancel (sc->task);
-    sc->task = GNUNET_SCHEDULER_NO_TASK;
+    sc->task = NULL;
   }
   if (NULL != sc->client)
   {
@@ -1609,10 +1602,10 @@ GNUNET_FS_search_pause (struct GNUNET_FS_SearchContext *sc)
 {
   struct GNUNET_FS_ProgressInfo pi;
 
-  if (GNUNET_SCHEDULER_NO_TASK != sc->task)
+  if (NULL != sc->task)
   {
     GNUNET_SCHEDULER_cancel (sc->task);
-    sc->task = GNUNET_SCHEDULER_NO_TASK;
+    sc->task = NULL;
   }
   if (NULL != sc->client)
     GNUNET_CLIENT_disconnect (sc->client);
@@ -1636,8 +1629,8 @@ GNUNET_FS_search_continue (struct GNUNET_FS_SearchContext *sc)
   struct GNUNET_FS_ProgressInfo pi;
 
   GNUNET_assert (NULL == sc->client);
-  GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == sc->task);
-  do_reconnect (sc, NULL);
+  GNUNET_assert (NULL == sc->task);
+  do_reconnect (sc);
   GNUNET_FS_search_sync_ (sc);
   pi.status = GNUNET_FS_STATUS_SEARCH_CONTINUED;
   sc->client_info = GNUNET_FS_search_make_status_ (&pi, sc->h, sc);
@@ -1721,7 +1714,7 @@ search_result_free (void *cls,
     GNUNET_assert (NULL == sr->update_search);
   }
   GNUNET_break (NULL == sr->probe_ctx);
-  GNUNET_break (GNUNET_SCHEDULER_NO_TASK == sr->probe_cancel_task);
+  GNUNET_break (NULL == sr->probe_cancel_task);
   GNUNET_break (NULL == sr->client_info);
   GNUNET_free_non_null (sr->serialization);
   GNUNET_FS_uri_destroy (sr->uri);
@@ -1766,7 +1759,7 @@ GNUNET_FS_search_stop (struct GNUNET_FS_SearchContext *sc)
   pi.status = GNUNET_FS_STATUS_SEARCH_STOPPED;
   sc->client_info = GNUNET_FS_search_make_status_ (&pi, sc->h, sc);
   GNUNET_break (NULL == sc->client_info);
-  if (GNUNET_SCHEDULER_NO_TASK != sc->task)
+  if (NULL != sc->task)
     GNUNET_SCHEDULER_cancel (sc->task);
   if (NULL != sc->client)
     GNUNET_CLIENT_disconnect (sc->client);