From a7163d46a6414c38c3eb4ba1e6783b3c158312db Mon Sep 17 00:00:00 2001 From: 2xsaiko Date: Thu, 4 Jun 2020 10:10:53 +0200 Subject: Move ServerAddress to enigma-server --- .../java/cuchaz/enigma/network/ServerAddress.java | 78 ++++++++++++++++++++++ .../cuchaz/enigma/network/ServerAddressTest.java | 28 ++++++++ .../enigma/gui/dialog/ConnectToServerDialog.java | 2 +- .../java/cuchaz/enigma/utils/ServerAddress.java | 78 ---------------------- .../test/java/cuchaz/enigma/ServerAddressTest.java | 29 -------- 5 files changed, 107 insertions(+), 108 deletions(-) create mode 100644 enigma-server/src/main/java/cuchaz/enigma/network/ServerAddress.java create mode 100644 enigma-server/src/test/java/cuchaz/enigma/network/ServerAddressTest.java delete mode 100644 enigma/src/main/java/cuchaz/enigma/utils/ServerAddress.java delete mode 100644 enigma/src/test/java/cuchaz/enigma/ServerAddressTest.java diff --git a/enigma-server/src/main/java/cuchaz/enigma/network/ServerAddress.java b/enigma-server/src/main/java/cuchaz/enigma/network/ServerAddress.java new file mode 100644 index 00000000..45e07508 --- /dev/null +++ b/enigma-server/src/main/java/cuchaz/enigma/network/ServerAddress.java @@ -0,0 +1,78 @@ +package cuchaz.enigma.network; + +import java.util.Objects; + +import javax.annotation.Nullable; + +public class ServerAddress { + + public final String address; + public final int port; + + private ServerAddress(String address, int port) { + this.address = address; + this.port = port; + } + + @Nullable + public static ServerAddress of(String address, int port) { + if (port < 0 || port > 65535) return null; + if (address == null) return null; + if (address.equals("")) return null; + if (!address.matches("[a-zA-Z0-9.:-]+")) return null; + if (address.startsWith("-") || address.endsWith("-")) return null; + return new ServerAddress(address, port); + } + + @Nullable + public static ServerAddress from(String s, int defaultPort) { + String address; + int idx = s.indexOf(']'); + if (s.startsWith("[") && idx != -1) { + address = s.substring(1, idx); + s = s.substring(idx + 1); + } else if (s.chars().filter(c -> c == ':').count() == 1) { + idx = s.indexOf(':'); + address = s.substring(0, idx); + s = s.substring(idx); + } else { + address = s; + s = ""; + } + + int port; + if (s.isEmpty()) { + port = defaultPort; + } else if (s.startsWith(":")) { + s = s.substring(1); + try { + port = Integer.parseInt(s); + } catch (NumberFormatException e) { + return null; + } + } else { + return null; + } + return ServerAddress.of(address, port); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ServerAddress that = (ServerAddress) o; + return port == that.port && + Objects.equals(address, that.address); + } + + @Override + public int hashCode() { + return Objects.hash(address, port); + } + + @Override + public String toString() { + return String.format("ServerAddress { address: '%s', port: %d }", address, port); + } + +} diff --git a/enigma-server/src/test/java/cuchaz/enigma/network/ServerAddressTest.java b/enigma-server/src/test/java/cuchaz/enigma/network/ServerAddressTest.java new file mode 100644 index 00000000..3765f7a5 --- /dev/null +++ b/enigma-server/src/test/java/cuchaz/enigma/network/ServerAddressTest.java @@ -0,0 +1,28 @@ +package cuchaz.enigma.network; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +public class ServerAddressTest { + + @Test + public void validAddresses() { + assertEquals(ServerAddress.of("127.0.0.1", 22), ServerAddress.from("127.0.0.1", 22)); + assertEquals(ServerAddress.of("::1", 80), ServerAddress.from("[::1]:80", 22)); + assertEquals(ServerAddress.of("dblsaiko.net", 22), ServerAddress.from("dblsaiko.net", 22)); + assertEquals(ServerAddress.of("f00f:efee::127.0.0.1", 724), ServerAddress.from("[f00f:efee::127.0.0.1]:724", 22)); + assertEquals(ServerAddress.of("aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:70", 22), ServerAddress.from("aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:70", 22)); + assertEquals(ServerAddress.of("::1", 22), ServerAddress.from("::1", 22)); + assertEquals(ServerAddress.of("0", 22), ServerAddress.from("0", 22)); + } + + @Test + public void invalidAddresses() { + assertNull(ServerAddress.from("127.0.0.1:-72", 22)); + assertNull(ServerAddress.from("127.0.0.1:100000000", 22)); + assertNull(ServerAddress.from("127.0.0.1:lmao", 22)); + } + +} diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/dialog/ConnectToServerDialog.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/dialog/ConnectToServerDialog.java index db1ceb14..f23007a0 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/dialog/ConnectToServerDialog.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/dialog/ConnectToServerDialog.java @@ -13,8 +13,8 @@ import javax.swing.JTextField; import cuchaz.enigma.gui.elements.ValidatableTextField; import cuchaz.enigma.gui.util.ScaleUtil; import cuchaz.enigma.network.EnigmaServer; +import cuchaz.enigma.network.ServerAddress; import cuchaz.enigma.utils.Pair; -import cuchaz.enigma.utils.ServerAddress; import cuchaz.enigma.utils.validation.Message; import cuchaz.enigma.utils.validation.StandardValidation; diff --git a/enigma/src/main/java/cuchaz/enigma/utils/ServerAddress.java b/enigma/src/main/java/cuchaz/enigma/utils/ServerAddress.java deleted file mode 100644 index 021d9a1a..00000000 --- a/enigma/src/main/java/cuchaz/enigma/utils/ServerAddress.java +++ /dev/null @@ -1,78 +0,0 @@ -package cuchaz.enigma.utils; - -import java.util.Objects; - -import javax.annotation.Nullable; - -public class ServerAddress { - - public final String address; - public final int port; - - private ServerAddress(String address, int port) { - this.address = address; - this.port = port; - } - - @Nullable - public static ServerAddress of(String address, int port) { - if (port < 0 || port > 65535) return null; - if (address == null) return null; - if (address.equals("")) return null; - if (!address.matches("[a-zA-Z0-9.:-]+")) return null; - if (address.startsWith("-") || address.endsWith("-")) return null; - return new ServerAddress(address, port); - } - - @Nullable - public static ServerAddress from(String s, int defaultPort) { - String address; - int idx = s.indexOf(']'); - if (s.startsWith("[") && idx != -1) { - address = s.substring(1, idx); - s = s.substring(idx + 1); - } else if (s.chars().filter(c -> c == ':').count() == 1) { - idx = s.indexOf(':'); - address = s.substring(0, idx); - s = s.substring(idx); - } else { - address = s; - s = ""; - } - - int port; - if (s.isEmpty()) { - port = defaultPort; - } else if (s.startsWith(":")) { - s = s.substring(1); - try { - port = Integer.parseInt(s); - } catch (NumberFormatException e) { - return null; - } - } else { - return null; - } - return ServerAddress.of(address, port); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - ServerAddress that = (ServerAddress) o; - return port == that.port && - Objects.equals(address, that.address); - } - - @Override - public int hashCode() { - return Objects.hash(address, port); - } - - @Override - public String toString() { - return String.format("ServerAddress { address: '%s', port: %d }", address, port); - } - -} diff --git a/enigma/src/test/java/cuchaz/enigma/ServerAddressTest.java b/enigma/src/test/java/cuchaz/enigma/ServerAddressTest.java deleted file mode 100644 index fdeb2736..00000000 --- a/enigma/src/test/java/cuchaz/enigma/ServerAddressTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package cuchaz.enigma; - -import cuchaz.enigma.utils.ServerAddress; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -public class ServerAddressTest { - - @Test - public void validAddresses() { - assertEquals(ServerAddress.of("127.0.0.1", 22), ServerAddress.from("127.0.0.1", 22)); - assertEquals(ServerAddress.of("::1", 80), ServerAddress.from("[::1]:80", 22)); - assertEquals(ServerAddress.of("dblsaiko.net", 22), ServerAddress.from("dblsaiko.net", 22)); - assertEquals(ServerAddress.of("f00f:efee::127.0.0.1", 724), ServerAddress.from("[f00f:efee::127.0.0.1]:724", 22)); - assertEquals(ServerAddress.of("aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:70", 22), ServerAddress.from("aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:70", 22)); - assertEquals(ServerAddress.of("::1", 22), ServerAddress.from("::1", 22)); - assertEquals(ServerAddress.of("0", 22), ServerAddress.from("0", 22)); - } - - @Test - public void invalidAddresses() { - assertNull(ServerAddress.from("127.0.0.1:-72", 22)); - assertNull(ServerAddress.from("127.0.0.1:100000000", 22)); - assertNull(ServerAddress.from("127.0.0.1:lmao", 22)); - } - -} -- cgit v1.2.3