Have tincd and tincctl use the same method of determining netname.
[tinc] / src / tincd.c
index 3cbac4b..85aee39 100644 (file)
@@ -177,9 +177,7 @@ static bool parse_options(int argc, char **argv) {
                                break;
 
                        case 'n':                               /* net name given */
-                               /* netname "." is special: a "top-level name" */
-                               netname = strcmp(optarg, ".") != 0 ?
-                                               xstrdup(optarg) : NULL;
+                               netname = xstrdup(optarg);
                                break;
 
                        case 'o':                               /* option */
@@ -228,6 +226,16 @@ static bool parse_options(int argc, char **argv) {
                }
        }
 
+       if(!netname && (netname = getenv("NETNAME")))
+               netname = xstrdup(netname);
+
+       /* netname "." is special: a "top-level name" */
+
+       if(!strcmp(netname, ".")) {
+               free(netname);
+               netname = NULL;
+       }
+
        return true;
 }
 
@@ -382,11 +390,6 @@ int main(int argc, char **argv) {
 
        openlogger("tinc", use_logfile?LOGMODE_FILE:LOGMODE_STDERR);
 
-       if(!event_init()) {
-               logger(DEBUG_ALWAYS, LOG_ERR, "Error initializing libevent!");
-               return 1;
-       }
-
        g_argv = argv;
 
        if(getenv("LISTEN_PID") && atoi(getenv("LISTEN_PID")) == getpid())
@@ -439,6 +442,11 @@ int main2(int argc, char **argv) {
        }
 #endif
 
+       if(!event_init()) {
+               logger(DEBUG_ALWAYS, LOG_ERR, "Error initializing libevent!");
+               return 1;
+       }
+
        /* Setup sockets and open device. */
 
        if(!setup_network())