Let tincctl use the NETNAME environment variable if no -n option is given.
[tinc] / src / tincctl.c
index b2e6e82..d1df07b 100644 (file)
@@ -138,6 +138,12 @@ static bool parse_options(int argc, char **argv) {
                }
        }
 
+       if(!netname) {
+               netname = getenv("NETNAME");
+               if(netname)
+                       netname = xstrdup(netname);
+       }
+
        return true;
 }
 
@@ -516,7 +522,7 @@ static bool remove_service(void) {
 }
 #endif
 
-int main(int argc, char *argv[], char *envp[]) {
+int main(int argc, char *argv[]) {
        int fd;
        int result;
        char host[128];
@@ -577,7 +583,7 @@ int main(int argc, char *argv[], char *envp[]) {
 #endif
                if (slash++) {
                        c = xmalloc((slash - argv[0]) + sizeof("tincd"));
-                       sprintf(c, "%.*stincd", slash - argv[0], argv[0]);
+                       sprintf(c, "%.*stincd", (int)(slash - argv[0]), argv[0]);
                }
                else
                        c = "tincd";
@@ -586,7 +592,7 @@ int main(int argc, char *argv[], char *envp[]) {
                        if (i != optind && strcmp(argv[i], "--") != 0)
                                argv[j++] = argv[i];
                argv[j] = NULL;
-               execve(c, argv, envp);
+               execvp(c, argv);
                fprintf(stderr, "Could not start %s: %s\n", c, strerror(errno));
                return 1;
        }