(no commit message)
[oweals/gnunet.git] / src / transport / test_plugin_transport.c
index 407150d3aca2c30df83dd0d078a69d220cb8e8c0..db635aec2db6007673dffa78e0ce2744491cbbf4 100644 (file)
@@ -4,7 +4,7 @@
 
      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 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
@@ -94,10 +94,11 @@ static int ok;
  */
 static void
 receive (void *cls,
-         struct GNUNET_TIME_Relative
-         latency,
          const struct GNUNET_PeerIdentity
-         *peer, const struct GNUNET_MessageHeader *message)
+         *peer, const struct GNUNET_MessageHeader *message,
+        uint32_t distance,
+        const char *sender_address,
+        size_t sender_address_len)
 {
   /* do nothing */
 }
@@ -137,43 +138,6 @@ unload_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 }
 
 
-static GNUNET_SCHEDULER_TaskIdentifier validation_timeout_task;
-
-
-static void
-validation_notification (void *cls,
-                         const char *name,
-                         const struct GNUNET_PeerIdentity *peer,
-                         uint32_t challenge, const char *sender_addr)
-{
-  if (validation_timeout_task != GNUNET_SCHEDULER_NO_TASK)
-    {
-      GNUNET_SCHEDULER_cancel (sched, validation_timeout_task);
-      validation_timeout_task = GNUNET_SCHEDULER_NO_TASK;
-    }
-
-  GNUNET_assert (challenge == 42);
-
-  ok = 0;                       /* if the last test succeeded, report success */
-  GNUNET_SCHEDULER_add_continuation (sched,
-                                     &unload_task,
-                                     (void *) cfg,
-                                     GNUNET_SCHEDULER_REASON_PREREQ_DONE);
-}
-
-
-static void
-validation_failed (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-  validation_timeout_task = GNUNET_SCHEDULER_NO_TASK;
-  GNUNET_break (0);             /* output error */
-  /* the "validation_notification" was not called
-     in a timely fashion; we should set an error
-     code for main and shut down */
-  unload_plugins (NULL, cfg);
-}
-
-
 /**
  * Simple example test that invokes
  * the "validate" function of the plugin
@@ -185,9 +149,10 @@ validation_failed (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
  *  work for other plugins; we should ask
  *  the plugin about its address instead...).
  */
-/* FIXME: won't work on IPv6 enabled systems where IPv4 mapping
- * isn't enabled (eg. FreeBSD > 4)
- */
+/* FIXME: this is TCP/UDP-specific and won't work
+   for HTTP/SMTP/DV; we should instead use an
+   address that we get from the plugin itself
+   (if it is willing/able to give us one...) */
 static void
 test_validation ()
 {
@@ -200,11 +165,14 @@ test_validation ()
   soaddr.sin_family = AF_INET;
   soaddr.sin_port = htons (2368 /* FIXME: get from config! */ );
   soaddr.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
-  api->validate (api->cls,
-                 &my_identity, 42, TIMEOUT, &soaddr, sizeof (soaddr));
-  /* add job to catch failure (timeout) */
-  validation_timeout_task =
-    GNUNET_SCHEDULER_add_delayed (sched, TIMEOUT, &validation_failed, NULL);
+  GNUNET_assert (GNUNET_OK ==
+                api->check_address (api->cls,
+                                    &soaddr, sizeof (soaddr)));
+  ok = 0;
+  GNUNET_SCHEDULER_add_continuation (sched,
+                                     &unload_task,
+                                     (void *) cfg,
+                                     GNUNET_SCHEDULER_REASON_PREREQ_DONE);
 }
 
 
@@ -213,13 +181,10 @@ setup_plugin_environment ()
 {
   env.cfg = cfg;
   env.sched = sched;
-  env.my_public_key = &my_public_key;
-  env.my_private_key = my_private_key;
   env.my_identity = &my_identity;
   env.cls = &env;
   env.receive = &receive;
   env.notify_address = &notify_address;
-  env.notify_validation = &validation_notification;
   env.max_connections = max_connect_per_transport;
 }