From 33521eabd4501b4add35468618453ac4f76311f3 Mon Sep 17 00:00:00 2001
From: Guus Sliepen <guus@tinc-vpn.org>
Date: Sat, 21 Jul 2012 15:15:04 +0200
Subject: [PATCH] Have tincd and tincctl use the same method of determining
 netname.

---
 src/tincctl.c | 14 +++++++++-----
 src/tincd.c   | 14 +++++++++++---
 2 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/src/tincctl.c b/src/tincctl.c
index a3688ec..f547639 100644
--- a/src/tincctl.c
+++ b/src/tincctl.c
@@ -187,11 +187,15 @@ static bool parse_options(int argc, char **argv) {
 		}
 	}
 
-	if(!netname) {
-		netname = getenv("NETNAME");
-		if(netname)
-			netname = xstrdup(netname);
-	}
+        if(!netname && (netname = getenv("NETNAME")))
+                netname = xstrdup(netname);
+
+        /* netname "." is special: a "top-level name" */
+
+        if(!strcmp(netname, ".")) {
+                free(netname);
+                netname = NULL;
+        }
 
 	return true;
 }
diff --git a/src/tincd.c b/src/tincd.c
index 9f65bbe..85aee39 100644
--- a/src/tincd.c
+++ b/src/tincd.c
@@ -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;
 }
 
-- 
2.25.1