REST/NAMESTORE: rework API
[oweals/gnunet.git] / src / transport / plugin_transport_wlan.c
index 9c9c1e8c24e4707832db11d843419a624f316b47..e1a93bf884d6843ea2137a3f0da3becca8a7e8f8 100644 (file)
@@ -2,20 +2,20 @@
   This file is part of GNUnet
   Copyright (C) 2010-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
-  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 <http://www.gnu.org/licenses/>.
 
-  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.
+     SPDX-License-Identifier: AGPL3.0-or-later
 */
 
 /**
@@ -38,6 +38,7 @@
 #include "gnunet_fragmentation_lib.h"
 #include "gnunet_constants.h"
 
+
 #if BUILD_WLAN
 /* begin case wlan */
 #define PLUGIN_NAME "wlan"
@@ -48,6 +49,7 @@
 #define LIBGNUNET_PLUGIN_TRANSPORT_DONE libgnunet_plugin_transport_wlan_done
 #define LOG(kind,...) GNUNET_log_from (kind, "transport-wlan",__VA_ARGS__)
 
+
 /**
  * time out of a mac endpoint
  */
 #error need to build wlan or bluetooth
 #endif
 
+
+
+/**
+ * Functions with this signature are called whenever a
+ * complete message is received by the tokenizer.
+ *
+ * Do not call #GNUNET_SERVER_mst_destroy from within
+ * the scope of this callback.
+ *
+ * @param cls closure
+ * @param client identification of the client
+ * @param message the actual message
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR to stop further processing
+ */
+typedef int
+(*GNUNET_SERVER_MessageTokenizerCallback) (void *cls,
+                                           void *client,
+                                           const struct GNUNET_MessageHeader *message);
+
+
+/* Include legacy message stream tokenizer that was removed from util (for now) */
+#include "tcp_server_mst_legacy.c"
+
+
 /**
  * Max size of packet (that we give to the WLAN driver for transmission)
  */
  * Which network scope do we belong to?
  */
 #if BUILD_WLAN
-static const enum GNUNET_ATS_Network_Type scope = GNUNET_ATS_NET_WLAN;
+static const enum GNUNET_NetworkType scope = GNUNET_NT_WLAN;
 #else
-static const enum GNUNET_ATS_Network_Type scope = GNUNET_ATS_NET_BT;
+static const enum GNUNET_NetworkType scope = GNUNET_NT_BT;
 #endif
 
 
@@ -718,7 +744,7 @@ send_ack (void *cls,
     GNUNET_break (0);
     return;
   }
-  if (size >= GNUNET_SERVER_MAX_MESSAGE_SIZE)
+  if (size >= GNUNET_MAX_MESSAGE_SIZE)
   {
     GNUNET_break (0);
     return;
@@ -732,7 +758,7 @@ send_ack (void *cls,
                   &radio_header->frame,
                   &endpoint->wlan_addr.mac,
                   sizeof (endpoint->wlan_addr.mac));
-  memcpy (&radio_header[1], hdr, msize);
+  GNUNET_memcpy (&radio_header[1], hdr, msize);
   if (NULL !=
       GNUNET_HELPER_send (endpoint->plugin->suid_helper,
                          &radio_header->header,
@@ -996,7 +1022,7 @@ transmit_fragment (void *cls,
                     &radio_header->frame,
                     &endpoint->wlan_addr.mac,
                     sizeof (endpoint->wlan_addr.mac));
-    memcpy (&radio_header[1], hdr, msize);
+    GNUNET_memcpy (&radio_header[1], hdr, msize);
     GNUNET_assert (NULL == fm->sh);
     fm->sh = GNUNET_HELPER_send (endpoint->plugin->suid_helper,
                                 &radio_header->header,
@@ -1273,14 +1299,14 @@ create_macendpoint (struct Plugin *plugin,
  * @param session the session
  * @return the network type in HBO or #GNUNET_SYSERR
  */
-static enum GNUNET_ATS_Network_Type
+static enum GNUNET_NetworkType
 wlan_plugin_get_network (void *cls,
                          struct GNUNET_ATS_Session *session)
 {
 #if BUILD_WLAN
-  return GNUNET_ATS_NET_WLAN;
+  return GNUNET_NT_WLAN;
 #else
-  return GNUNET_ATS_NET_BT;
+  return GNUNET_NT_BT;
 #endif
 }
 
@@ -1292,14 +1318,14 @@ wlan_plugin_get_network (void *cls,
  * @param address the address
  * @return the network type
  */
-static enum GNUNET_ATS_Network_Type
+static enum GNUNET_NetworkType
 wlan_plugin_get_network_for_address (void *cls,
                                     const struct GNUNET_HELLO_Address *address)
 {
 #if BUILD_WLAN
-  return GNUNET_ATS_NET_WLAN;
+  return GNUNET_NT_WLAN;
 #else
-  return GNUNET_ATS_NET_BT;
+  return GNUNET_NT_BT;
 #endif
 }
 
@@ -1417,7 +1443,7 @@ wlan_plugin_send (void *cls,
   wlanheader->sender = *plugin->env->my_identity;
   wlanheader->target = session->target;
   wlanheader->crc = htonl (GNUNET_CRYPTO_crc32_n (msgbuf, msgbuf_size));
-  memcpy (&wlanheader[1],
+  GNUNET_memcpy (&wlanheader[1],
           msgbuf,
           msgbuf_size);
   GNUNET_STATISTICS_update (plugin->env->stats,
@@ -1704,7 +1730,7 @@ send_hello_beacon (void *cls)
         (unsigned int) size,
         mac_to_string (&bc_all_mac));
     get_wlan_header (plugin, &radioHeader->frame, &bc_all_mac, size);
-    memcpy (&radioHeader[1], hello, hello_size);
+    GNUNET_memcpy (&radioHeader[1], hello, hello_size);
     if (NULL !=
        GNUNET_HELPER_send (plugin->suid_helper,
                            &radioHeader->header,
@@ -1728,11 +1754,10 @@ send_hello_beacon (void *cls)
  * Function used for to process the data from the suid process
  *
  * @param cls the plugin handle
- * @param client client that send the data (not used)
  * @param hdr header of the GNUNET_MessageHeader
  */
 static int
-handle_helper_message (void *cls, void *client,
+handle_helper_message (void *cls,
                       const struct GNUNET_MessageHeader *hdr)
 {
   struct Plugin *plugin = cls;
@@ -1888,9 +1913,10 @@ handle_helper_message (void *cls, void *client,
     break;
   default:
     GNUNET_break (0);
-    LOG (GNUNET_ERROR_TYPE_DEBUG,
+    LOG (GNUNET_ERROR_TYPE_ERROR,
         "Unexpected message of type %u (%u bytes)",
-        ntohs (hdr->type), ntohs (hdr->size));
+        ntohs (hdr->type),
+        ntohs (hdr->size));
     break;
   }
   return GNUNET_OK;