From 4475d03cf58db4ccecef2378666f793d565abe53 Mon Sep 17 00:00:00 2001 From: gjeanmart Date: Sun, 24 Jun 2018 13:58:24 +0100 Subject: [PATCH] Add support for DNS address --- src/main/java/io/ipfs/multiaddr/MultiAddress.java | 2 +- src/test/java/io/ipfs/api/MultiAddressTest.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/ipfs/multiaddr/MultiAddress.java b/src/main/java/io/ipfs/multiaddr/MultiAddress.java index e940caf..51e4b3a 100644 --- a/src/main/java/io/ipfs/multiaddr/MultiAddress.java +++ b/src/main/java/io/ipfs/multiaddr/MultiAddress.java @@ -40,7 +40,7 @@ public boolean isTCPIP() { public String getHost() { String[] parts = toString().substring(1).split("/"); - if (parts[0].startsWith("ip")) + if (parts[0].startsWith("ip") || parts[0].startsWith("dns")) return parts[1]; throw new IllegalStateException("This multiaddress doesn't have a host: "+toString()); } diff --git a/src/test/java/io/ipfs/api/MultiAddressTest.java b/src/test/java/io/ipfs/api/MultiAddressTest.java index d012ef5..92ba081 100644 --- a/src/test/java/io/ipfs/api/MultiAddressTest.java +++ b/src/test/java/io/ipfs/api/MultiAddressTest.java @@ -155,6 +155,17 @@ public void bytesToString() { test.accept("/ip4/127.0.0.1/udp/1234/ip4/127.0.0.1/tcp/4321", "047f0000011104d2047f0000010610e1"); } + @Test + public void dns() { + String dns = "mydomain.com"; + int port = 5001; + String address = "/dns6/"+dns+"/tcp/"+port+"/https"; + MultiAddress multiAddress = new MultiAddress(address); + + Assert.assertEquals("host should be equal to " + dns, dns, multiAddress.getHost()); + Assert.assertEquals("port should be equal to " + port, port, multiAddress.getTCPPort()); + } + public static byte[] fromHex(String hex) { if (hex.length() % 2 != 0) throw new IllegalStateException("Uneven number of hex digits!");