(no commit message)
[oweals/gnunet.git] / src / transport / test_plugin_transport_https.c
index e2102a2f9a6c8b5c1fc2bcf135143debe0322b21..caf7271054ca76534034828428a038ceecb79587 100644 (file)
@@ -44,7 +44,7 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
-#define VERBOSE GNUNET_YES
+#define VERBOSE GNUNET_NO
 #define DEBUG_CURL GNUNET_NO
 #define HTTP_BUFFER_SIZE 2048
 
@@ -384,6 +384,10 @@ static CURLM *multi_handle;
  */
 static GNUNET_SCHEDULER_TaskIdentifier http_task_send;
 
+
+static char * key_file;
+static char * cert_file;
+
 /**
  * Shutdown testcase
  */
@@ -462,6 +466,26 @@ shutdown_clean ()
   GNUNET_SCHEDULER_shutdown(sched);
   GNUNET_DISK_directory_remove ("/tmp/test_plugin_transport_http");
 
+  struct stat sbuf;
+  if (0 == stat (cert_file, &sbuf ))
+  {
+         if (0 == remove(cert_file))
+             GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Successfully removed existing certificate file `%s'\n",cert_file);
+         else
+                 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to remove certfile `%s'\n",cert_file);
+  }
+
+  if (0 == stat (key_file, &sbuf ))
+  {
+         if (0 == remove(key_file))
+             GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Successfully removed private key file `%s'\n",key_file);
+         else
+                 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to private key file `%s'\n",key_file);
+  }
+
+  GNUNET_free (key_file);
+  GNUNET_free (cert_file);
+
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Exiting testcase\n");
   exit(fail);
   return;
@@ -860,7 +884,7 @@ notify_address (void *cls,
                 addrlen);
       return;
     }
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              _("Transport plugin notification for address: `%s':%u\n"),
              address,
              port);
@@ -1135,8 +1159,7 @@ run (void *cls,
   unsigned long long tneigh;
   struct Plugin_Address * cur;
   const char * addr_str;
-
-
+  struct stat sbuf;
   unsigned int suggest_res;
 
   fail_pretty_printer = GNUNET_YES;
@@ -1185,6 +1208,46 @@ run (void *cls,
                      "transport-http");
   }
 
+  /* Get private key file from config */
+  if (GNUNET_CONFIGURATION_have_value (cfg,
+                                                                          "transport-https", "KEY_FILE"))
+  {
+               GNUNET_CONFIGURATION_get_value_string (cfg,
+                                                                                          "transport-https",
+                                                                                          "KEY_FILE",
+                                                                                          &key_file);
+  }
+  if (key_file == NULL)
+         GNUNET_asprintf(&key_file,"https.key");
+
+  if (0 == stat (key_file, &sbuf ))
+  {
+         if (0 == remove(key_file))
+             GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Successfully removed existing private key file `%s'\n",key_file);
+         else
+                 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to remove private key file `%s'\n",key_file);
+  }
+
+  /* Get private key file from config */
+  if (GNUNET_CONFIGURATION_have_value (cfg,
+                                                                          "transport-https", "CERT_FILE"))
+  {
+         GNUNET_CONFIGURATION_get_value_string (cfg,
+                                                                                        "transport-https",
+                                                                                    "CERT_FILE",
+                                                                                    &cert_file);
+  }
+  if (cert_file == NULL)
+         GNUNET_asprintf(&cert_file,"https.cert");
+
+  if (0 == stat (cert_file, &sbuf ))
+  {
+         if (0 == remove(cert_file))
+             GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Successfully removed existing certificate file `%s'\n",cert_file);
+         else
+                 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to remove existing certificate file `%s'\n",cert_file);
+  }
+
   max_connect_per_transport = (uint32_t) tneigh;
   my_private_key = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);
   GNUNET_free (keyfile);