REST/NAMESTORE: rework API
[oweals/gnunet.git] / src / transport / gnunet-service-transport_manipulation.c
index 6eef8f300d56b2afc1a52962fe478d463d4c98a4..0b042dd6a7a4a768a5d1258b8207191d3cd47f79 100644 (file)
@@ -2,20 +2,20 @@
  This file is part of GNUnet.
  Copyright (C) 2010-2013 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
- by the Free Software Foundation; either version 3, or (at your
- option) any later version.
+ GNUnet is free software: you can redistribute it and/or modify it
under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
 
  GNUnet is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- General Public License for more details.
Affero General Public License for more details.
 
- 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ You should have received a copy of the GNU Affero General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+     SPDX-License-Identifier: AGPL3.0-or-later
  */
 
 /**
@@ -25,8 +25,6 @@
  * @author Matthias Wachs
  */
 #include "platform.h"
-#include "gnunet-service-transport_blacklist.h"
-#include "gnunet-service-transport_clients.h"
 #include "gnunet-service-transport_hello.h"
 #include "gnunet-service-transport_neighbours.h"
 #include "gnunet-service-transport_plugins.h"
@@ -170,20 +168,14 @@ static struct GNUNET_SCHEDULER_Task *generic_send_delay_task;
 /**
  * Set traffic metric to manipulate
  *
- * @param cls closure
- * @param client client sending message
  * @param message containing information
  */
 void
-GST_manipulation_set_metric (void *cls,
-                             struct GNUNET_SERVER_Client *client,
-                             const struct GNUNET_MessageHeader *message)
+GST_manipulation_set_metric (const struct TrafficMetricMessage *tm)
 {
-  const struct TrafficMetricMessage *tm;
   static struct GNUNET_PeerIdentity zero;
   struct TM_Peer *tmp;
 
-  tm = (const struct TrafficMetricMessage *) message;
   if (0 == memcmp (&tm->peer,
                    &zero,
                    sizeof(struct GNUNET_PeerIdentity)))
@@ -192,13 +184,11 @@ GST_manipulation_set_metric (void *cls,
                 "Received traffic metrics for all peers\n");
     delay_in = GNUNET_TIME_relative_ntoh (tm->delay_in);
     delay_out = GNUNET_TIME_relative_ntoh (tm->delay_out);
-    GNUNET_SERVER_receive_done (client,
-                                GNUNET_OK);
     return;
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Received traffic metrics for peer `%s'\n",
-              GNUNET_i2s(&tm->peer));
+              GNUNET_i2s (&tm->peer));
   if (NULL ==
       (tmp = GNUNET_CONTAINER_multipeermap_get (peers,
                                                 &tm->peer)))
@@ -214,8 +204,6 @@ GST_manipulation_set_metric (void *cls,
                               &tm->properties);
   tmp->delay_in = GNUNET_TIME_relative_ntoh (tm->delay_in);
   tmp->delay_out = GNUNET_TIME_relative_ntoh (tm->delay_out);
-  GNUNET_SERVER_receive_done (client,
-                              GNUNET_OK);
 }
 
 
@@ -224,16 +212,13 @@ GST_manipulation_set_metric (void *cls,
  * message.
  *
  * @param cls the `struct DelayQueueEntry` to transmit
- * @param tc unused
  */
 static void
-send_delayed (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
+send_delayed (void *cls)
 {
   struct DelayQueueEntry *dqe = cls;
   struct DelayQueueEntry *next;
   struct TM_Peer *tmp = dqe->tmp;
-  struct GNUNET_TIME_Relative delay;
 
   GNUNET_break (GNUNET_YES ==
                 GST_neighbours_test_connected (&dqe->id));
@@ -247,9 +232,9 @@ send_delayed (void *cls,
     if (NULL != next)
     {
       /* More delayed messages */
-      delay = GNUNET_TIME_absolute_get_remaining(next->sent_at);
-      tmp->send_delay_task = GNUNET_SCHEDULER_add_delayed(delay,
-                                                          &send_delayed, next);
+      tmp->send_delay_task = GNUNET_SCHEDULER_add_at (next->sent_at,
+                                                      &send_delayed,
+                                                      next);
     }
   }
   else
@@ -263,10 +248,9 @@ send_delayed (void *cls,
     if (NULL != next)
     {
       /* More delayed messages */
-      delay = GNUNET_TIME_absolute_get_remaining(next->sent_at);
-      generic_send_delay_task = GNUNET_SCHEDULER_add_delayed (delay,
-                                                              &send_delayed,
-                                                              next);
+      generic_send_delay_task = GNUNET_SCHEDULER_add_at (next->sent_at,
+                                                         &send_delayed,
+                                                         next);
     }
   }
   GST_neighbours_send (&dqe->id,
@@ -327,7 +311,7 @@ GST_manipulation_send (const struct GNUNET_PeerIdentity *target,
   dqe->msg = &dqe[1];
   dqe->msg_size = msg_size;
   dqe->timeout = timeout;
-  memcpy (dqe->msg,
+  GNUNET_memcpy (dqe->msg,
           msg,
           msg_size);
   if (NULL == tmp)
@@ -352,7 +336,7 @@ GST_manipulation_send (const struct GNUNET_PeerIdentity *target,
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Delaying %u byte message to peer `%s' with peer specific delay for %s\n",
-              msg_size,
+              (unsigned int) msg_size,
               GNUNET_i2s (target),
               GNUNET_STRINGS_relative_time_to_string (delay,
                                                       GNUNET_YES));
@@ -496,7 +480,9 @@ GST_manipulation_peer_disconnect (const struct GNUNET_PeerIdentity *peer)
   while (NULL != (dqe = next))
   {
     next = dqe->next;
-    if (0 == memcmp(peer, &dqe->id, sizeof(dqe->id)))
+    if (0 == memcmp (peer,
+                    &dqe->id,
+                    sizeof (dqe->id)))
     {
       GNUNET_CONTAINER_DLL_remove (generic_dqe_head,
                                    generic_dqe_tail,
@@ -515,9 +501,9 @@ GST_manipulation_peer_disconnect (const struct GNUNET_PeerIdentity *peer)
     generic_send_delay_task = NULL;
     if (NULL != generic_dqe_head)
       generic_send_delay_task
-        = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_absolute_get_remaining(generic_dqe_head->sent_at),
-                                        &send_delayed,
-                                        generic_dqe_head);
+        = GNUNET_SCHEDULER_add_at (generic_dqe_head->sent_at,
+                                   &send_delayed,
+                                   generic_dqe_head);
   }
 }