REST: nothing triggers rest
[oweals/gnunet.git] / src / gns / gnunet-gns-benchmark.c
index 574251c87f40d669ed8a04cb7159657c418ba74b..77066fd3f83594cf7006ecc01f49461bda9497e8 100644 (file)
@@ -2,20 +2,20 @@
      This file is part of GNUnet
      Copyright (C) 2018 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 src/gns/gnunet-gns-benchmark.c
@@ -181,6 +181,10 @@ static struct GNUNET_TIME_Relative timeout;
  */
 static unsigned int active_cnt;
 
+/**
+ * Look for GNS2DNS records specifically?
+ */
+static int g2d;
 
 /**
  * Free @a req and data structures reachable from it.
@@ -216,6 +220,9 @@ process_result (void *cls,
   (void) rd_count;
   (void) rd;
   active_cnt--;
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Got response for request `%s'\n",
+              req->hostname);
   req->lr = NULL;
   req->latency = GNUNET_TIME_absolute_get_duration (req->op_start_time);
   GNUNET_CONTAINER_DLL_remove (act_head,
@@ -291,7 +298,9 @@ process_queue (void *cls)
               active_cnt);
   req->lr = GNUNET_GNS_lookup_with_tld (gns,
                                        req->hostname,
-                                       GNUNET_GNSRECORD_TYPE_ANY,
+                                       g2d
+                                        ? GNUNET_GNSRECORD_TYPE_GNS2DNS
+                                        : GNUNET_GNSRECORD_TYPE_ANY,
                                        GNUNET_GNS_LO_DEFAULT,
                                        &process_result,
                                        req);
@@ -454,7 +463,7 @@ queue (const char *hostname,
   req = GNUNET_malloc (sizeof (struct Request) + hlen);
   req->cat = cat;
   req->hostname = (char *) &req[1];
-  GNUNET_memcpy (req->hostname,
+  GNUNET_memcpy (&req[1],
                  hostname,
                  hlen);
   GNUNET_CONTAINER_DLL_insert (todo_head,
@@ -577,6 +586,10 @@ main (int argc,
                                         "RELATIVETIME",
                                         gettext_noop ("how long to wait for an answer"),
                                         &timeout),
+    GNUNET_GETOPT_option_flag ('2',
+                               "g2d",
+                               gettext_noop ("look for GNS2DNS records instead of ANY"),
+                               &g2d),
     GNUNET_GETOPT_OPTION_END
   };