REST: nothing triggers rest
[oweals/gnunet.git] / src / gns / gnunet-gns-helper-service-w32.c
index 8a047c9fdca0f3084614fd41a1289d9a6d3cf4ff..4eb965e242465d5d7c1f9f2caa6b3ac138defebb 100644 (file)
@@ -2,20 +2,20 @@
      This file is part of GNUnet.
      Copyright (C) 2012, 2017 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
 */
 /**
  * @file gnunet-gns-helper-service-w32.c
@@ -154,27 +154,6 @@ do_shutdown (void *cls)
 }
 
 
-/**
- * Transmit the given message to the client.
- *
- * @param client target of the message
- * @param msg message to transmit, will be freed!
- */
-static void
-transmit (struct GNUNET_SERVICE_Client *client,
-         struct GNUNET_MessageHeader *msg)
-{
-  struct GNUNET_MQ_Handle *mq = GNUNET_SERVICE_client_get_mq (client);
-  struct GNUNET_MQ_Envelope *env;
-
-  /* NOTE: small hack here, should have constructed and
-     passed an 'env' in the first place... */
-  env = GNUNET_MQ_msg_copy (msg);
-  GNUNET_MQ_send (mq,
-                  env);
-}
-
-
 #define MarshallPtr(ptr, base, type) \
   if (ptr) \
     ptr = (type *) ((char *) ptr - (char *) base)
@@ -222,7 +201,9 @@ process_lookup_result (void *cls,
   struct request *rq = cls;
   int i, j, csanum;
   struct GNUNET_W32RESOLVER_GetMessage *msg;
+  struct GNUNET_MQ_Envelope *msg_env;
   struct GNUNET_MessageHeader *msgend;
+  struct GNUNET_MQ_Envelope *msgend_env;
   WSAQUERYSETW *qs;
   size_t size;
   size_t size_recalc;
@@ -239,11 +220,9 @@ process_lookup_result (void *cls,
 
   if (0 == rd_count)
   {
-    msg = GNUNET_new (struct GNUNET_MessageHeader);
-    msg->header.size = htons (sizeof (struct GNUNET_MessageHeader));
-    msg->header.type = htons (GNUNET_MESSAGE_TYPE_W32RESOLVER_RESPONSE);
-    transmit (rq->client,
-              &msg->header);
+    msgend_env = GNUNET_MQ_msg (msgend, GNUNET_MESSAGE_TYPE_W32RESOLVER_RESPONSE);
+    GNUNET_MQ_send (GNUNET_SERVICE_client_get_mq (rq->client),
+                    msgend_env);
     GNUNET_CONTAINER_DLL_remove (rq_head,
                                  rq_tail,
                                  rq);
@@ -304,9 +283,9 @@ process_lookup_result (void *cls,
     size += blobsize;
   }
   size_recalc = sizeof (struct GNUNET_W32RESOLVER_GetMessage) + sizeof (WSAQUERYSETW);
-  msg = GNUNET_malloc (size);
-  msg->header.size = htons (size - sizeof (struct GNUNET_MessageHeader));
-  msg->header.type = htons (GNUNET_MESSAGE_TYPE_W32RESOLVER_RESPONSE);
+  msg_env = GNUNET_MQ_msg_extra (msg,
+                                 size - sizeof (struct GNUNET_MessageHeader),
+                                 GNUNET_MESSAGE_TYPE_W32RESOLVER_RESPONSE);
   msg->af = htonl (rq->af);
   msg->sc_data1 = htonl (rq->sc.Data1);
   msg->sc_data2 = htons (rq->sc.Data2);
@@ -465,24 +444,21 @@ process_lookup_result (void *cls,
     }
     he->h_addr_list[j] = NULL;
   }
-  msgend = GNUNET_new (struct GNUNET_MessageHeader);
-
-  msgend->type = htons (GNUNET_MESSAGE_TYPE_W32RESOLVER_RESPONSE);
-  msgend->size = htons (sizeof (struct GNUNET_MessageHeader));
+  msgend_env = GNUNET_MQ_msg (msgend, GNUNET_MESSAGE_TYPE_W32RESOLVER_RESPONSE);
 
   if ((char *) ptr - (char *) msg != size || size_recalc != size || size_recalc != ((char *) ptr - (char *) msg))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Error in WSAQUERYSETW size calc: expected %lu, got %lu (recalc %lu)\n",
+                "Error in WSAQUERYSETW size calc: expected %u, got %lu (recalc %u)\n",
                 size,
                 (unsigned long) ((char *) ptr - (char *) msg),
                 size_recalc);
   }
   MarshallWSAQUERYSETW (qs, &rq->sc);
-  transmit (rq->client,
-            &msg->header);
-  transmit (rq->client,
-            msgend);
+  GNUNET_MQ_send (GNUNET_SERVICE_client_get_mq (rq->client),
+                  msg_env);
+  GNUNET_MQ_send (GNUNET_SERVICE_client_get_mq (rq->client),
+                  msgend_env);
   GNUNET_CONTAINER_DLL_remove (rq_head,
                                rq_tail,
                                rq);
@@ -528,7 +504,7 @@ get_ip_from_hostname (struct GNUNET_SERVICE_Client *client,
   else
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Unknown GUID: %08X-%04X-%04X-%02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X\n",
+                "Unknown GUID: %08lX-%04X-%04X-%02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X\n",
                 sc.Data1,
                 sc.Data2,
                 sc.Data3,
@@ -674,7 +650,7 @@ handle_get (void *cls,
   for (int i = 0; i < 8; i++)
     sc.Data4[i] = msg->sc_data4[i];
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Got GUID: %08X-%04X-%04X-%02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X\n",
+              "Got GUID: %08lX-%04X-%04X-%02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X\n",
               sc.Data1,
               sc.Data2,
               sc.Data3,