From ec57499e084322649ac3f289a035d64fc7a5a4a7 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Thu, 1 Dec 2022 18:26:15 -0600 Subject: [PATCH] Handle escaping and unescaping IPv6 addresses in AddressTuple --- .../limelight/nvstream/http/ComputerDetails.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/limelight/nvstream/http/ComputerDetails.java b/app/src/main/java/com/limelight/nvstream/http/ComputerDetails.java index b41170d5..0c0cc005 100644 --- a/app/src/main/java/com/limelight/nvstream/http/ComputerDetails.java +++ b/app/src/main/java/com/limelight/nvstream/http/ComputerDetails.java @@ -20,6 +20,11 @@ public class ComputerDetails { throw new IllegalArgumentException("Invalid port"); } + // If this was an escaped IPv6 address, remove the brackets + if (address.startsWith("[") && address.endsWith("]")) { + address = address.substring(1, address.length() - 1); + } + this.address = address; this.port = port; } @@ -40,7 +45,14 @@ public class ComputerDetails { } public String toString() { - return address + ":" + port; + if (address.contains(":")) { + // IPv6 + return "[" + address + "]:" + port; + } + else { + // IPv4 and hostnames + return address + ":" + port; + } } }