- doxygen
[oweals/gnunet.git] / src / pt / test_gns_vpn.c
index d30c64c2f83b50985a5ea3ef9bcecf82e0bc01e4..e686ce8b49360bdf81d494f39361c12601eaea7f 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
 
      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
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
@@ -31,7 +31,7 @@
 #include "gnunet_testing_lib.h"
 
 #define PORT 8080
 #include "gnunet_testing_lib.h"
 
 #define PORT 8080
-#define TEST_DOMAIN "www.gads"
+#define TEST_DOMAIN "www.gnu"
 
 #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 300)
 
 
 #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 300)
 
@@ -217,9 +217,9 @@ curl_main ()
     }
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Download complete, shutting down!\n");
     do_shutdown ();
     }
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Download complete, shutting down!\n");
     do_shutdown ();
-    return;    
+    return;
   }
   }
-  GNUNET_assert (CURLM_OK == curl_multi_fdset (multi, &rs, &ws, &es, &max)); 
+  GNUNET_assert (CURLM_OK == curl_multi_fdset (multi, &rs, &ws, &es, &max));
   if ( (CURLM_OK != curl_multi_timeout (multi, &timeout)) ||
        (-1 == timeout) )
     delay = GNUNET_TIME_UNIT_SECONDS;
   if ( (CURLM_OK != curl_multi_timeout (multi, &timeout)) ||
        (-1 == timeout) )
     delay = GNUNET_TIME_UNIT_SECONDS;
@@ -236,14 +236,14 @@ curl_main ()
                                              &nrs,
                                              &nws,
                                              &curl_task,
                                              &nrs,
                                              &nws,
                                              &curl_task,
-                                             NULL);  
+                                             NULL);
 }
 
 
 static void
 start_curl (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
 }
 
 
 static void
 start_curl (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  GNUNET_asprintf (&url, 
+  GNUNET_asprintf (&url,
                   "http://%s/hello_world",     
                   TEST_DOMAIN);
   curl = curl_easy_init ();
                   "http://%s/hello_world",     
                   TEST_DOMAIN);
   curl = curl_easy_init ();
@@ -280,7 +280,7 @@ disco_ns (void* cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
  *                will match 'result_af' from the request
  * @param address IP address (struct in_addr or struct in_addr6, depending on 'af')
  *                that the VPN allocated for the redirection;
  *                will match 'result_af' from the request
  * @param address IP address (struct in_addr or struct in_addr6, depending on 'af')
  *                that the VPN allocated for the redirection;
- *                traffic to this IP will now be redirected to the 
+ *                traffic to this IP will now be redirected to the
  *                specified target peer; NULL on error
  */
 static void
  *                specified target peer; NULL on error
  */
 static void
@@ -290,11 +290,11 @@ commence_testing (void *cls, int32_t success, const char *emsg)
 
   if ((emsg != NULL) && (GNUNET_YES != success))
   {
 
   if ((emsg != NULL) && (GNUNET_YES != success))
   {
-    fprintf (stderr, 
+    fprintf (stderr,
             "NS failed to create record %s\n", emsg);
     GNUNET_SCHEDULER_shutdown ();
     return;
             "NS failed to create record %s\n", emsg);
     GNUNET_SCHEDULER_shutdown ();
     return;
-  }  
+  }
   GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10), &start_curl, NULL);
 }
 
   GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10), &start_curl, NULL);
 }
 
@@ -302,7 +302,7 @@ commence_testing (void *cls, int32_t success, const char *emsg)
 /**
  * Function to keep the HTTP server running.
  */
 /**
  * Function to keep the HTTP server running.
  */
-static void 
+static void
 mhd_main (void);
 
 
 mhd_main (void);
 
 
@@ -316,7 +316,7 @@ mhd_task (void *cls,
 }
 
 
 }
 
 
-static void 
+static void
 mhd_main ()
 {
   struct GNUNET_NETWORK_FDSet nrs;
 mhd_main ()
 {
   struct GNUNET_NETWORK_FDSet nrs;
@@ -351,7 +351,7 @@ mhd_main ()
                                             &nrs,
                                             &nws,
                                             &mhd_task,
                                             &nrs,
                                             &nws,
                                             &mhd_task,
-                                            NULL);  
+                                            NULL);
 }
 
 
 }
 
 
@@ -363,11 +363,11 @@ run (void *cls,
   enum MHD_FLAG flags;
   struct GNUNET_PeerIdentity id;
   struct GNUNET_CRYPTO_HashAsciiEncoded peername;
   enum MHD_FLAG flags;
   struct GNUNET_PeerIdentity id;
   struct GNUNET_CRYPTO_HashAsciiEncoded peername;
-  struct GNUNET_CRYPTO_EccPrivateKey *host_key;
-  struct GNUNET_NAMESTORE_RecordData rd;
+  struct GNUNET_CRYPTO_EddsaPrivateKey *host_key;
+  struct GNUNET_GNSRECORD_Data rd;
   char *rd_string;
   char *zone_keyfile;
   char *rd_string;
   char *zone_keyfile;
-  
+
   GNUNET_TESTING_peer_get_identity (peer, &id);
   GNUNET_CRYPTO_hash_to_enc ((struct GNUNET_HashCode*)&id, &peername);
 
   GNUNET_TESTING_peer_get_identity (peer, &id);
   GNUNET_CRYPTO_hash_to_enc ((struct GNUNET_HashCode*)&id, &peername);
 
@@ -383,7 +383,7 @@ run (void *cls,
                          MHD_OPTION_END);
   GNUNET_assert (NULL != mhd);
   mhd_main ();
                          MHD_OPTION_END);
   GNUNET_assert (NULL != mhd);
   mhd_main ();
-  
+
   if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
                                                             "ZONEKEY",
                                                             &zone_keyfile))
   if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
                                                             "ZONEKEY",
                                                             &zone_keyfile))
@@ -392,25 +392,25 @@ run (void *cls,
     return;
   }
 
     return;
   }
 
-  host_key = GNUNET_CRYPTO_ecc_key_create_from_file (zone_keyfile);
-  rd.expiration_time = GNUNET_TIME_UNIT_FOREVER_ABS.abs_value;
-  GNUNET_asprintf (&rd_string, "6 %s %s", (char*)&peername, "www.gads.");
-  GNUNET_assert (GNUNET_OK == GNUNET_NAMESTORE_string_to_value (GNUNET_GNS_RECORD_VPN,
+  host_key = GNUNET_CRYPTO_eddsa_key_create_from_file (zone_keyfile);
+  rd.expiration_time = GNUNET_TIME_UNIT_FOREVER_ABS.abs_value_us;
+  GNUNET_asprintf (&rd_string, "6 %s %s", (char*)&peername, "www.gnu.");
+  GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_string_to_value (GNUNET_GNSRECORD_TYPE_VPN,
                                                                rd_string,
                                                                (void**)&rd.data,
                                                                &rd.data_size));
                                                                rd_string,
                                                                (void**)&rd.data,
                                                                &rd.data_size));
-  rd.record_type = GNUNET_GNS_RECORD_VPN;
-
-  GNUNET_NAMESTORE_record_put_by_authority (namestore,
-                                           host_key,
-                                           "www",
-                                           1, &rd,
-                                           &commence_testing,
-                                           NULL);
+  rd.record_type = GNUNET_GNSRECORD_TYPE_VPN;
+
+  GNUNET_NAMESTORE_records_store (namestore,
+                                 host_key,
+                                 "www",
+                                 1, &rd,
+                                 &commence_testing,
+                                 NULL);
   GNUNET_free ((void**)rd.data);
   GNUNET_free (rd_string);
   GNUNET_free (zone_keyfile);
   GNUNET_free ((void**)rd.data);
   GNUNET_free (rd_string);
   GNUNET_free (zone_keyfile);
-  GNUNET_CRYPTO_ecc_key_free (host_key);
+  GNUNET_free (host_key);
 }
 
 
 }
 
 
@@ -433,7 +433,7 @@ open_dev_null (int target_fd,
   if (fd == target_fd)
     return;
   if (-1 == dup2 (fd, target_fd))
   if (fd == target_fd)
     return;
   if (-1 == dup2 (fd, target_fd))
-  {    
+  {
     (void) close (fd);
     abort ();
   }
     (void) close (fd);
     abort ();
   }
@@ -443,13 +443,13 @@ open_dev_null (int target_fd,
 
 /**
  * Run the given command and wait for it to complete.
 
 /**
  * Run the given command and wait for it to complete.
- * 
+ *
  * @param file name of the binary to run
  * @param cmd command line arguments (as given to 'execv')
  * @return 0 on success, 1 on any error
  */
 static int
  * @param file name of the binary to run
  * @param cmd command line arguments (as given to 'execv')
  * @return 0 on success, 1 on any error
  */
 static int
-fork_and_exec (const char *file, 
+fork_and_exec (const char *file,
               char *const cmd[])
 {
   int status;
               char *const cmd[])
 {
   int status;
@@ -459,8 +459,8 @@ fork_and_exec (const char *file,
   pid = fork ();
   if (-1 == pid)
   {
   pid = fork ();
   if (-1 == pid)
   {
-    fprintf (stderr, 
-            "fork failed: %s\n", 
+    fprintf (stderr,
+            "fork failed: %s\n",
             strerror (errno));
     return 1;
   }
             strerror (errno));
     return 1;
   }
@@ -469,25 +469,25 @@ fork_and_exec (const char *file,
     /* we are the child process */
     /* close stdin/stdout to not cause interference
        with the helper's main protocol! */
     /* we are the child process */
     /* close stdin/stdout to not cause interference
        with the helper's main protocol! */
-    (void) close (0); 
+    (void) close (0);
     open_dev_null (0, O_RDONLY);
     open_dev_null (0, O_RDONLY);
-    (void) close (1); 
+    (void) close (1);
     open_dev_null (1, O_WRONLY);
     (void) execv (file, cmd);
     /* can only get here on error */
     open_dev_null (1, O_WRONLY);
     (void) execv (file, cmd);
     /* can only get here on error */
-    fprintf (stderr, 
-            "exec `%s' failed: %s\n", 
+    fprintf (stderr,
+            "exec `%s' failed: %s\n",
             file,
             strerror (errno));
     _exit (1);
   }
   /* keep running waitpid as long as the only error we get is 'EINTR' */
   while ( (-1 == (ret = waitpid (pid, &status, 0))) &&
             file,
             strerror (errno));
     _exit (1);
   }
   /* keep running waitpid as long as the only error we get is 'EINTR' */
   while ( (-1 == (ret = waitpid (pid, &status, 0))) &&
-         (errno == EINTR) ); 
+         (errno == EINTR) );
   if (-1 == ret)
   {
   if (-1 == ret)
   {
-    fprintf (stderr, 
-            "waitpid failed: %s\n", 
+    fprintf (stderr,
+            "waitpid failed: %s\n",
             strerror (errno));
     return 1;
   }
             strerror (errno));
     return 1;
   }
@@ -508,19 +508,19 @@ main (int argc, char *const *argv)
   {
     "iptables", "-t", "mangle", "-L", "-v", NULL
   };
   {
     "iptables", "-t", "mangle", "-L", "-v", NULL
   };
-  
+
   if (0 == access ("/sbin/iptables", X_OK))
     sbin_iptables = "/sbin/iptables";
   else if (0 == access ("/usr/sbin/iptables", X_OK))
     sbin_iptables = "/usr/sbin/iptables";
   else
   {
   if (0 == access ("/sbin/iptables", X_OK))
     sbin_iptables = "/sbin/iptables";
   else if (0 == access ("/usr/sbin/iptables", X_OK))
     sbin_iptables = "/usr/sbin/iptables";
   else
   {
-    fprintf (stderr, 
+    fprintf (stderr,
             "Executable iptables not found in approved directories: %s, skipping\n",
             strerror (errno));
     return 0;
   }
             "Executable iptables not found in approved directories: %s, skipping\n",
             strerror (errno));
     return 0;
   }
-  
+
   if (0 != fork_and_exec (sbin_iptables, iptables_args))
   {
     fprintf (stderr,
   if (0 != fork_and_exec (sbin_iptables, iptables_args))
   {
     fprintf (stderr,
@@ -548,20 +548,20 @@ main (int argc, char *const *argv)
          GNUNET_OS_check_helper_binary (bin_exit, GNUNET_YES, "-d gnunet-vpn - - - 169.1.3.3.7 255.255.255.0")) || //no nat, ipv4 only
         (GNUNET_YES !=
          GNUNET_OS_check_helper_binary (bin_dns, GNUNET_YES, NULL))) ) // TODO: once we have a windows-testcase, add test parameters here
          GNUNET_OS_check_helper_binary (bin_exit, GNUNET_YES, "-d gnunet-vpn - - - 169.1.3.3.7 255.255.255.0")) || //no nat, ipv4 only
         (GNUNET_YES !=
          GNUNET_OS_check_helper_binary (bin_dns, GNUNET_YES, NULL))) ) // TODO: once we have a windows-testcase, add test parameters here
-  {    
+  {
     fprintf (stderr,
             "WARNING: gnunet-helper-{exit,vpn,dns} binaries in $PATH are not SUID, refusing to run test (as it would have to fail).\n");
     fprintf (stderr,
             "Change $PATH ('.' in $PATH before $GNUNET_PREFIX/bin is problematic) or permissions (run 'make install' as root) to fix this!\n");
     fprintf (stderr,
             "WARNING: gnunet-helper-{exit,vpn,dns} binaries in $PATH are not SUID, refusing to run test (as it would have to fail).\n");
     fprintf (stderr,
             "Change $PATH ('.' in $PATH before $GNUNET_PREFIX/bin is problematic) or permissions (run 'make install' as root) to fix this!\n");
-    GNUNET_free (bin_vpn);    
+    GNUNET_free (bin_vpn);
     GNUNET_free (bin_exit);
     GNUNET_free (bin_dns);
     return 0;
   }
     GNUNET_free (bin_exit);
     GNUNET_free (bin_dns);
     return 0;
   }
-  GNUNET_free (bin_vpn);    
+  GNUNET_free (bin_vpn);
   GNUNET_free (bin_exit);
   GNUNET_free (bin_dns);
   GNUNET_free (bin_exit);
   GNUNET_free (bin_dns);
-  
+
   dest_ip = "169.254.86.1";
   dest_af = AF_INET;
   src_af = AF_INET;
   dest_ip = "169.254.86.1";
   dest_af = AF_INET;
   src_af = AF_INET;
@@ -570,11 +570,11 @@ main (int argc, char *const *argv)
     use_v6 = GNUNET_YES;
   else
     use_v6 = GNUNET_NO;
     use_v6 = GNUNET_YES;
   else
     use_v6 = GNUNET_NO;
-  
+
   if ( (GNUNET_OK != GNUNET_NETWORK_test_pf (src_af)) ||
        (GNUNET_OK != GNUNET_NETWORK_test_pf (dest_af)) )
   {
   if ( (GNUNET_OK != GNUNET_NETWORK_test_pf (src_af)) ||
        (GNUNET_OK != GNUNET_NETWORK_test_pf (dest_af)) )
   {
-    fprintf (stderr, 
+    fprintf (stderr,
             "Required address families not supported by this system, skipping test.\n");
     return 0;
   }
             "Required address families not supported by this system, skipping test.\n");
     return 0;
   }