X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftransport%2Fplugin_transport_udp_broadcasting.c;h=0c26aa62493760f66ff0aee499e034bad462b5c2;hb=1b1edf92c24f91c36747458e880e0d6a5e559e95;hp=ea8797f29262a57f315e6e9f7e929691fff1ef85;hpb=8ea46cc3c928bd5f74859dc74f305c94b687aad2;p=oweals%2Fgnunet.git diff --git a/src/transport/plugin_transport_udp_broadcasting.c b/src/transport/plugin_transport_udp_broadcasting.c index ea8797f29..0c26aa624 100644 --- a/src/transport/plugin_transport_udp_broadcasting.c +++ b/src/transport/plugin_transport_udp_broadcasting.c @@ -1,21 +1,21 @@ /* This file is part of GNUnet - Copyright (C) 2010, 2011 Christian Grothoff (and other contributing authors) + Copyright (C) 2010, 2011 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 Affero General Public License + along with this program. If not, see . - 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. + SPDX-License-Identifier: AGPL3.0-or-later */ /** @@ -29,7 +29,6 @@ #include "gnunet_hello_lib.h" #include "gnunet_util_lib.h" #include "gnunet_fragmentation_lib.h" -#include "gnunet_nat_lib.h" #include "gnunet_protocols.h" #include "gnunet_resolver_service.h" #include "gnunet_signatures.h" @@ -120,7 +119,7 @@ struct MstContext /** * ATS network type. */ - enum GNUNET_ATS_Network_Type ats_address_network_type; + enum GNUNET_NetworkType ats_address_network_type; }; @@ -134,11 +133,10 @@ struct MstContext */ static int broadcast_mst_cb (void *cls, - void *client, const struct GNUNET_MessageHeader *message) { - struct Plugin *plugin = cls; - struct MstContext *mc = client; + struct MstContext *mc = cls; + struct Plugin *plugin = mc->plugin; struct GNUNET_HELLO_Address *address; const struct GNUNET_MessageHeader *hello; const struct UDP_Beacon_Message *msg; @@ -190,18 +188,22 @@ udp_broadcast_receive (struct Plugin *plugin, ssize_t size, const union UdpAddress *udp_addr, size_t udp_addr_len, - enum GNUNET_ATS_Network_Type network_type) + enum GNUNET_NetworkType network_type) { + struct GNUNET_MessageStreamTokenizer *broadcast_mst; struct MstContext mc; + broadcast_mst = GNUNET_MST_create (&broadcast_mst_cb, + &mc); + mc.plugin = plugin; mc.udp_addr = udp_addr; mc.udp_addr_len = udp_addr_len; mc.ats_address_network_type = network_type; - GNUNET_SERVER_mst_receive (plugin->broadcast_mst, - &mc, - buf, size, - GNUNET_NO, - GNUNET_NO); + GNUNET_MST_from_buffer (broadcast_mst, + buf, size, + GNUNET_NO, + GNUNET_NO); + GNUNET_MST_destroy (broadcast_mst); } @@ -226,14 +228,13 @@ prepare_beacon (struct Plugin *plugin, msg->sender = *(plugin->env->my_identity); msg->header.size = htons (msg_size); msg->header.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_BROADCAST_BEACON); - memcpy (&msg[1], hello, hello_size); + GNUNET_memcpy (&msg[1], hello, hello_size); return msg_size; } static void -udp_ipv4_broadcast_send (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +udp_ipv4_broadcast_send (void *cls) { struct BroadcastAddress *baddr = cls; struct Plugin *plugin = baddr->plugin; @@ -308,8 +309,7 @@ udp_ipv4_broadcast_send (void *cls, static void -udp_ipv6_broadcast_send (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +udp_ipv6_broadcast_send (void *cls) { struct BroadcastAddress *baddr = cls; struct Plugin *plugin = baddr->plugin; @@ -379,7 +379,7 @@ udp_ipv6_broadcast_send (void *cls, else GNUNET_SCHEDULER_add_write_file (GNUNET_TIME_UNIT_FOREVER_REL, baddr->cryogenic_fd, - &udp_ipv4_broadcast_send, + &udp_ipv6_broadcast_send, baddr); } else @@ -412,7 +412,7 @@ iface_proc (void *cls, { struct Plugin *plugin = cls; struct BroadcastAddress *ba; - enum GNUNET_ATS_Network_Type network; + enum GNUNET_NetworkType network; if (NULL == addr) return GNUNET_OK; @@ -428,7 +428,7 @@ iface_proc (void *cls, GNUNET_a2s (netmask, addrlen), name, netmask); network = plugin->env->get_address_type (plugin->env->cls, broadcast_addr, addrlen); - if (GNUNET_ATS_NET_LOOPBACK == network) + if (GNUNET_NT_LOOPBACK == network) { /* Broadcasting on loopback does not make sense */ return GNUNET_YES; @@ -437,7 +437,7 @@ iface_proc (void *cls, ba = GNUNET_new (struct BroadcastAddress); ba->plugin = plugin; ba->addr = GNUNET_malloc (addrlen); - memcpy (ba->addr, broadcast_addr, addrlen); + GNUNET_memcpy (ba->addr, broadcast_addr, addrlen); ba->addrlen = addrlen; if ( (GNUNET_YES == plugin->enable_ipv4) && @@ -549,10 +549,6 @@ setup_broadcast (struct Plugin *plugin, return; } - /* always create tokenizers */ - plugin->broadcast_mst = - GNUNET_SERVER_mst_create (&broadcast_mst_cb, plugin); - if (GNUNET_YES != plugin->enable_broadcasting) return; /* We do not send, just receive */ @@ -639,13 +635,6 @@ stop_broadcast (struct Plugin *plugin) GNUNET_free (p); } } - - /* Destroy MSTs */ - if (NULL != plugin->broadcast_mst) - { - GNUNET_SERVER_mst_destroy (plugin->broadcast_mst); - plugin->broadcast_mst = NULL; - } } /* end of plugin_transport_udp_broadcasting.c */