-fix off-by-1
[oweals/gnunet.git] / src / dht / dht_api.c
index be699e65eb56e916a8abb9b5aeae0f9bf0f3a5f7..b5ae2f8ce6bd7892487973e8770cca9993288744 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2009, 2010, 2011, 2012 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2009, 2010, 2011, 2012 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
@@ -14,8 +14,8 @@
 
      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 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
@@ -66,7 +66,7 @@ struct PendingMessage
    * Continuation to call when the request has been
    * transmitted (for the first time) to the service; can be NULL.
    */
-  GNUNET_SCHEDULER_Task cont;
+  GNUNET_SCHEDULER_TaskCallback cont;
 
   /**
    * Closure for 'cont'.
@@ -155,7 +155,7 @@ struct GNUNET_DHT_PutHandle
   /**
    * Timeout task for this operation.
    */
-  GNUNET_SCHEDULER_TaskIdentifier timeout_task;
+  struct GNUNET_SCHEDULER_Task * timeout_task;
 
   /**
    * Unique ID for the PUT operation.
@@ -345,7 +345,7 @@ struct GNUNET_DHT_Handle
   /**
    * Task for trying to reconnect.
    */
-  GNUNET_SCHEDULER_TaskIdentifier reconnect_task;
+  struct GNUNET_SCHEDULER_Task * reconnect_task;
 
   /**
    * How quickly should we retry?  Used for exponential back-off on
@@ -362,7 +362,7 @@ struct GNUNET_DHT_Handle
    * Did we start our receive loop yet?
    */
   int in_receive;
-  
+
 #if ENABLE_MALICIOUS
   /**
    * Handle of act malicious request.
@@ -496,17 +496,15 @@ process_pending_messages (struct GNUNET_DHT_Handle *handle);
  * Try reconnecting to the dht service.
  *
  * @param cls a `struct GNUNET_DHT_Handle`
- * @param tc scheduler context
  */
 static void
-try_reconnect (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+try_reconnect (void *cls)
 {
   struct GNUNET_DHT_Handle *handle = cls;
 
   LOG (GNUNET_ERROR_TYPE_DEBUG, "Reconnecting with DHT %p\n", handle);
   handle->retry_time = GNUNET_TIME_STD_BACKOFF (handle->retry_time);
-  handle->reconnect_task = GNUNET_SCHEDULER_NO_TASK;
+  handle->reconnect_task = NULL;
   if (GNUNET_YES != try_connect (handle))
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG, "dht reconnect failed(!)\n");
@@ -531,7 +529,7 @@ do_disconnect (struct GNUNET_DHT_Handle *handle)
 
   if (NULL == handle->client)
     return;
-  GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == handle->reconnect_task);
+  GNUNET_assert (NULL == handle->reconnect_task);
   if (NULL != handle->th)
     GNUNET_CLIENT_notify_transmit_ready_cancel (handle->th);
   handle->th = NULL;
@@ -650,7 +648,7 @@ transmit_pending (void *cls,
   head->in_pending_queue = GNUNET_NO;
   if (NULL != head->cont)
   {
-    head->cont (head->cont_cls, NULL);
+    head->cont (head->cont_cls);
     head->cont = NULL;
     head->cont_cls = NULL;
   }
@@ -663,7 +661,7 @@ transmit_pending (void *cls,
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG, "Starting to process replies from DHT\n");
     handle->in_receive = GNUNET_YES;
-    
+
     GNUNET_CLIENT_receive (handle->client, &service_message_handler, handle,
                            GNUNET_TIME_UNIT_FOREVER_REL);
   }
@@ -899,7 +897,7 @@ process_act_malicious_confirmation_message (struct GNUNET_DHT_Handle *handle,
    struct GNUNET_DHT_ActMaliciousHandle *mh;
    GNUNET_DHT_PutContinuation cont;
    void *cont_cls;
-   
+
    mh = handle->mh;
    if (NULL == mh)
     return GNUNET_OK;
@@ -907,7 +905,7 @@ process_act_malicious_confirmation_message (struct GNUNET_DHT_Handle *handle,
   cont_cls = mh->cont_cls;
   if (NULL != cont)
     cont (cont_cls, GNUNET_OK);
-  
+
   return GNUNET_OK;
 }
 #endif
@@ -1110,7 +1108,7 @@ GNUNET_DHT_disconnect (struct GNUNET_DHT_Handle *handle)
     pm->in_pending_queue = GNUNET_NO;
     GNUNET_assert (GNUNET_YES == pm->free_on_send);
     if (NULL != pm->cont)
-      pm->cont (pm->cont_cls, NULL);
+      pm->cont (pm->cont_cls);
     GNUNET_free (pm);
   }
   while (NULL != (ph = handle->put_head))
@@ -1126,7 +1124,7 @@ GNUNET_DHT_disconnect (struct GNUNET_DHT_Handle *handle)
     GNUNET_CLIENT_disconnect (handle->client);
     handle->client = NULL;
   }
-  if (GNUNET_SCHEDULER_NO_TASK != handle->reconnect_task)
+  if (NULL != handle->reconnect_task)
     GNUNET_SCHEDULER_cancel (handle->reconnect_task);
   GNUNET_CONTAINER_multihashmap_destroy (handle->active_requests);
   GNUNET_free (handle);
@@ -1137,16 +1135,14 @@ GNUNET_DHT_disconnect (struct GNUNET_DHT_Handle *handle)
  * Timeout for the transmission of a fire&forget-request.  Clean it up.
  *
  * @param cls the `struct GNUNET_DHT_PutHandle *`
- * @param tc scheduler context
  */
 static void
-timeout_put_request (void *cls,
-                    const struct GNUNET_SCHEDULER_TaskContext *tc)
+timeout_put_request (void *cls)
 {
   struct GNUNET_DHT_PutHandle *ph = cls;
   struct GNUNET_DHT_Handle *handle = ph->dht_handle;
 
-  ph->timeout_task = GNUNET_SCHEDULER_NO_TASK;
+  ph->timeout_task = NULL;
   if (NULL != ph->pending)
   {
     GNUNET_CONTAINER_DLL_remove (handle->pending_head, handle->pending_tail,
@@ -1168,11 +1164,9 @@ timeout_put_request (void *cls,
  * the message pointer in the put handle to NULL.
  *
  * @param cls the `struct GNUNET_DHT_PutHandle`
- * @param tc unused
  */
 static void
-mark_put_message_gone (void *cls,
-                      const struct GNUNET_SCHEDULER_TaskContext *tc)
+mark_put_message_gone (void *cls)
 {
   struct GNUNET_DHT_PutHandle *ph = cls;
 
@@ -1283,10 +1277,10 @@ GNUNET_DHT_put_cancel (struct GNUNET_DHT_PutHandle *ph)
     GNUNET_free (ph->pending);
     ph->pending = NULL;
   }
-  if (ph->timeout_task != GNUNET_SCHEDULER_NO_TASK)
+  if (ph->timeout_task != NULL)
   {
     GNUNET_SCHEDULER_cancel (ph->timeout_task);
-    ph->timeout_task = GNUNET_SCHEDULER_NO_TASK;
+    ph->timeout_task = NULL;
   }
   GNUNET_CONTAINER_DLL_remove (handle->put_head,
                               handle->put_tail,
@@ -1570,10 +1564,10 @@ GNUNET_DHT_monitor_stop (struct GNUNET_DHT_MonitorHandle *handle)
  * @param handle the DHT handle
  * @param action 1 to make the service malicious; 0 to make it benign
  * @param cont continuation to call when done (transmitting request to service)
- * @param cont_cls closure for @a cont        
+ * @param cont_cls closure for @a cont
  */
 struct GNUNET_DHT_ActMaliciousHandle *
-GNUNET_DHT_act_malicious (struct GNUNET_DHT_Handle *handle, 
+GNUNET_DHT_act_malicious (struct GNUNET_DHT_Handle *handle,
                           unsigned int action,
                           GNUNET_DHT_PutContinuation cont,
                           void *cont_cls)
@@ -1582,7 +1576,7 @@ GNUNET_DHT_act_malicious (struct GNUNET_DHT_Handle *handle,
   struct GNUNET_DHT_ActMaliciousHandle *mh;
   struct PendingMessage *pending;
   size_t msize;
-  
+
   msize = sizeof(struct GNUNET_DHT_ActMaliciousMessage);
   if (msize >= GNUNET_SERVER_MAX_MESSAGE_SIZE)
   {