From 838295c014550c47ca1b42f8126fce12bdfe40d9 Mon Sep 17 00:00:00 2001
From: zzz <zzz@i2pmail.org>
Date: Sat, 20 Mar 2021 12:12:21 -0400
Subject: [PATCH] SAM: Improve checks for unset tunnel nickname

---
 apps/sam/java/src/net/i2p/sam/SAMMessageSession.java | 10 +++++++---
 apps/sam/java/src/net/i2p/sam/SAMStreamSession.java  | 10 +++++++---
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/apps/sam/java/src/net/i2p/sam/SAMMessageSession.java b/apps/sam/java/src/net/i2p/sam/SAMMessageSession.java
index 88f2d84b48..f52cb25645 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMMessageSession.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMMessageSession.java
@@ -261,10 +261,14 @@ abstract class SAMMessageSession implements SAMMessageSess {
                 _log.debug("Instantiating new SAM message-based session handler");
 
             I2PClient client = I2PClientFactory.createClient();
-            if (!props.containsKey("inbound.nickname") && !props.containsKey("outbound.nickname")) {
-                props.setProperty("inbound.nickname", "SAM UDP Client");
-                props.setProperty("outbound.nickname", "SAM UDP Client");
+            String name = props.getProperty("inbound.nickname");
+            if (name == null || name.trim().isEmpty()) {
+                name = "SAM UDP Client";
+                props.setProperty("inbound.nickname", name);
             }
+            String name2 = props.getProperty("outbound.nickname");
+            if (name2 == null || name2.trim().isEmpty())
+                props.setProperty("outbound.nickname", name);
             _session = client.createSession(destStream, props);
 
             if (_log.shouldLog(Log.DEBUG))
diff --git a/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java b/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java
index cdaecebbf8..10bd8fd603 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java
@@ -162,10 +162,14 @@ class SAMStreamSession implements SAMMessageSess {
         }
         if (!canReceive)
             allprops.setProperty("i2cp.dontPublishLeaseSet", "true");
-        if (!allprops.containsKey("inbound.nickname") && !allprops.containsKey("outbound.nickname")) {
-            allprops.setProperty("inbound.nickname", "SAM TCP Client");
-            allprops.setProperty("outbound.nickname", "SAM TCP Client");
+        String name = allprops.getProperty("inbound.nickname");
+        if (name == null || name.trim().isEmpty()) {
+            name = "SAM TCP Client";
+            allprops.setProperty("inbound.nickname", name);
         }
+        String name2 = allprops.getProperty("outbound.nickname");
+        if (name2 == null || name2.trim().isEmpty())
+            allprops.setProperty("outbound.nickname", name);
 
         _isOwnSession = true;
         if (_log.shouldLog(Log.DEBUG))
-- 
GitLab