#include "platform.h"
#include "gnunet_util_lib.h"
+#ifndef WINDOWS
+/**
+ * Turn the given file descriptor in to '/dev/null'.
+ *
+ * @param fd fd to bind to /dev/null
+ * @param flags flags to use (O_RDONLY or O_WRONLY)
+ */
+static void
+make_dev_zero (int fd,
+ int flags)
+{
+ int z;
+
+ GNUNET_assert (0 == close (fd));
+ z = open ("/dev/null", flags);
+ GNUNET_assert (-1 != z);
+ if (z == fd)
+ return;
+ dup2 (z, fd);
+ GNUNET_assert (0 == close (z));
+}
+#endif
+
static void
-removecerts (const char *file1,
+removecerts (const char *file1,
const char *file2)
{
if (GNUNET_YES == GNUNET_DISK_file_test (file1))
if (3 != argc)
{
- fprintf (stderr,
+ fprintf (stderr,
"Invalid arguments.\n");
return 1;
}
removecerts (argv[1], argv[2]);
- (void) close (2); /* eliminate stderr */
+ (void) GNUNET_DISK_directory_create_for_file (argv[1]);
+ (void) GNUNET_DISK_directory_create_for_file (argv[2]);
+ /* eliminate stderr */
+#if WINDOWS
+ (void) close (2);
+#else
+ make_dev_zero (2, O_WRONLY);
+#endif
/* Create RSA Private Key */
/* openssl genrsa -out $1 1024 2> /dev/null */
openssl =
"-out", argv[1], "1024", NULL);
if (NULL == openssl)
{
- fprintf (stderr,
+ fprintf (stderr,
"Failed to run openssl. Is openssl installed?\n");
return 2;
}
"-new", "-x509", "-key", argv[1], NULL);
if (NULL == openssl)
{
- fprintf (stderr,
+ fprintf (stderr,
"Failed to create self-signed certificate with openssl.\n");
return 3;
}