Don't try to use kill() on Windows.
[tinc] / src / tincctl.c
index 465c981..5067ded 100644 (file)
@@ -1,6 +1,6 @@
 /*
     tincctl.c -- Controlling a running tincd
-    Copyright (C) 2007-2016 Guus Sliepen <guus@tinc-vpn.org>
+    Copyright (C) 2007-2017 Guus Sliepen <guus@tinc-vpn.org>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -446,11 +446,13 @@ static bool rsa_keygen(int bits, bool ask) {
        // Make sure the key size is a multiple of 8 bits.
        bits &= ~0x7;
 
-       // Force them to be between 1024 and 8192 bits long.
-       if(bits < 1024)
-               bits = 1024;
-       if(bits > 8192)
-               bits = 8192;
+       // Make sure that a valid key size is used.
+       if(bits < 1024 || bits > 8192) {
+               fprintf(stderr, "Invalid key size %d specified! It should be between 1024 and 8192 bits.\n", bits);
+               return false;
+       } else if(bits < 2048) {
+               fprintf(stderr, "WARNING: generating a weak %d bits RSA key! 2048 or more bits are recommended.\n", bits);
+       }
 
        fprintf(stderr, "Generating %d bits keys:\n", bits);
 
@@ -719,6 +721,8 @@ bool connect_tincd(bool verbose) {
        }
 
        fclose(f);
+
+#ifndef HAVE_MINGW
        if ((pid == 0) || (kill(pid, 0) && (errno == ESRCH))) {
                fprintf(stderr, "Could not find tincd running at pid %d\n", pid);
                /* clean up the stale socket and pid file */
@@ -727,7 +731,6 @@ bool connect_tincd(bool verbose) {
                return false;
        }
 
-#ifndef HAVE_MINGW
        struct sockaddr_un sa;
        sa.sun_family = AF_UNIX;
        strncpy(sa.sun_path, unixsocketname, sizeof sa.sun_path);