tinc-gui: Reformat codebase according to PEP8
[tinc] / src / tincctl.c
index c6d4aac..abc5c09 100644 (file)
@@ -89,7 +89,7 @@ static struct option const long_options[] = {
 static void version(void) {
        printf("%s version %s (built %s %s, protocol %d.%d)\n", PACKAGE,
                   BUILD_VERSION, BUILD_DATE, BUILD_TIME, PROT_MAJOR, PROT_MINOR);
-       printf("Copyright (C) 1998-2014 Ivo Timmermans, Guus Sliepen and others.\n"
+       printf("Copyright (C) 1998-2015 Ivo Timmermans, Guus Sliepen and others.\n"
                        "See the AUTHORS file for a complete list.\n\n"
                        "tinc comes with ABSOLUTELY NO WARRANTY.  This is free software,\n"
                        "and you are welcome to redistribute it under certain conditions;\n"
@@ -233,6 +233,12 @@ FILE *fopenmask(const char *filename, const char *mode, mode_t perms) {
        perms &= ~mask;
        umask(~perms);
        FILE *f = fopen(filename, mode);
+
+       if(!f) {
+               fprintf(stderr, "Could not open %s: %s\n", filename, strerror(errno));
+               return NULL;
+       }
+
 #ifdef HAVE_FCHMOD
        if((perms & 0444) && f)
                fchmod(fileno(f), perms);
@@ -411,6 +417,7 @@ static bool ed25519_keygen(bool ask) {
 
        char *pubkey = ecdsa_get_base64_public_key(key);
        fprintf(f, "Ed25519PublicKey = %s\n", pubkey);
+       free(pubkey);
 
        fclose(f);
        ecdsa_free(key);
@@ -854,8 +861,8 @@ static int cmd_start(int argc, char *argv[]) {
        return status;
 #else
        int pfd[2] = {-1, -1};
-       if(pipe(pfd)) {
-               fprintf(stderr, "Could not create umbilical pipe: %s\n", strerror(errno));
+       if(socketpair(AF_UNIX, SOCK_STREAM, 0, pfd)) {
+               fprintf(stderr, "Could not create umbilical socket: %s\n", strerror(errno));
                free(nargv);
                return 1;
        }
@@ -1798,7 +1805,7 @@ static int cmd_config(int argc, char *argv[]) {
 }
 
 static bool try_bind(int port) {
-       struct addrinfo *ai = NULL;
+       struct addrinfo *ai = NULL, *aip;
        struct addrinfo hint = {
                .ai_flags = AI_PASSIVE,
                .ai_family = AF_UNSPEC,
@@ -1806,24 +1813,30 @@ static bool try_bind(int port) {
                .ai_protocol = IPPROTO_TCP,
        };
 
+       bool success = true;
        char portstr[16];
        snprintf(portstr, sizeof portstr, "%d", port);
 
        if(getaddrinfo(NULL, portstr, &hint, &ai) || !ai)
                return false;
 
-       while(ai) {
+       for(aip = ai; aip; aip = aip->ai_next) {
                int fd = socket(ai->ai_family, SOCK_STREAM, IPPROTO_TCP);
-               if(!fd)
-                       return false;
+               if(!fd) {
+                       success = false;
+                       break;
+               }
+
                int result = bind(fd, ai->ai_addr, ai->ai_addrlen);
                closesocket(fd);
-               if(result)
-                       return false;
-               ai = ai->ai_next;
+               if(result) {
+                       success = false;
+                       break;
+               }
        }
 
-       return true;
+       freeaddrinfo(ai);
+       return success;
 }
 
 int check_port(char *name) {