X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftransport%2Ftest_transport_api_manipulation_recv_tcp.c;h=40e0b6a4dbd0d0496493b9fa8a8cf9426b569c8c;hb=ad1244d958b76cb249028c7ad87ff84df49293ff;hp=e902aed62d4ab9d5c93461398ac616826b69b906;hpb=8d0883a3f695261cfd8651ed53734f2f4fb30417;p=oweals%2Fgnunet.git diff --git a/src/transport/test_transport_api_manipulation_recv_tcp.c b/src/transport/test_transport_api_manipulation_recv_tcp.c index e902aed62..40e0b6a4d 100644 --- a/src/transport/test_transport_api_manipulation_recv_tcp.c +++ b/src/transport/test_transport_api_manipulation_recv_tcp.c @@ -2,20 +2,18 @@ This file is part of GNUnet. Copyright (C) 2009, 2010, 2016 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. - - 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. + Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ /** * @file transport/test_transport_api_manipulation_recv_tcp.c @@ -59,6 +57,16 @@ do_free (void *cls) } +static void +delayed_transmit (void *cls) +{ + struct GNUNET_TRANSPORT_TESTING_SendClosure *sc = cls; + + start_delayed = GNUNET_TIME_absolute_get (); + GNUNET_TRANSPORT_TESTING_large_send (sc); +} + + static void sendtask (void *cls) { @@ -77,14 +85,23 @@ sendtask (void *cls) } if (0 < messages_recv) { - memset (&prop, 0, sizeof (prop)); + memset (&prop, + 0, + sizeof (prop)); delay = GNUNET_TIME_UNIT_SECONDS; - GNUNET_TRANSPORT_set_traffic_metric (ccc->p[1]->th, - &ccc->p[0]->id, - &prop, - delay, - GNUNET_TIME_UNIT_ZERO); - start_delayed = GNUNET_TIME_absolute_get(); + GNUNET_TRANSPORT_manipulation_set (ccc->p[1]->tmh, + &ccc->p[0]->id, + &prop, + delay, + GNUNET_TIME_UNIT_ZERO); + /* wait 1s to allow manipulation to go into effect */ + if (1 == messages_recv) + { + GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, + &delayed_transmit, + sc); + return; + } } GNUNET_TRANSPORT_TESTING_large_send (sc); } @@ -94,7 +111,7 @@ static void notify_receive (void *cls, struct GNUNET_TRANSPORT_TESTING_PeerContext *receiver, const struct GNUNET_PeerIdentity *sender, - const struct GNUNET_MessageHeader *message) + const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) { { char *ps = GNUNET_strdup (GNUNET_i2s (&receiver->id)); @@ -103,13 +120,13 @@ notify_receive (void *cls, "Peer %u (`%s') received message of type %d and size %u size from peer %s)!\n", receiver->no, ps, - ntohs (message->type), - ntohs (message->size), + ntohs (message->header.type), + ntohs (message->header.size), GNUNET_i2s (sender)); GNUNET_free (ps); } - if ( (GNUNET_TRANSPORT_TESTING_SIMPLE_MTYPE != ntohs (message->type)) || - (GNUNET_TRANSPORT_TESTING_LARGE_MESSAGE_SIZE != ntohs (message->size)) ) + if ( (GNUNET_TRANSPORT_TESTING_SIMPLE_MTYPE != ntohs (message->header.type)) || + (GNUNET_TRANSPORT_TESTING_LARGE_MESSAGE_SIZE != ntohs (message->header.size)) ) { GNUNET_break (0); ccc->global_ret = GNUNET_SYSERR; @@ -117,7 +134,7 @@ notify_receive (void *cls, return; } - if (messages_recv <= 1) + if (messages_recv <= 2) { /* Received non-delayed message */ dur_normal = GNUNET_TIME_absolute_get_duration (start_normal);