From 1dc45820127b220647e35f592ce0d60774118837 Mon Sep 17 00:00:00 2001 From: Christian Basler Date: Wed, 17 Jun 2015 06:23:00 +0200 Subject: [PATCH] Issue # 5: fixed test and initialisation --- .../ch/dissem/bitmessage/networking/Connection.java | 7 ++++++- .../bitmessage/repository/JdbcNodeRegistry.java | 13 +++++++++---- repositories/src/main/resources/nodes.txt | 7 ++++++- .../bitmessage/repository/JdbcNodeRegistryTest.java | 4 ++-- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/networking/src/main/java/ch/dissem/bitmessage/networking/Connection.java b/networking/src/main/java/ch/dissem/bitmessage/networking/Connection.java index 1b9345b..e3dc251 100644 --- a/networking/src/main/java/ch/dissem/bitmessage/networking/Connection.java +++ b/networking/src/main/java/ch/dissem/bitmessage/networking/Connection.java @@ -159,7 +159,7 @@ public class Connection implements Runnable { } break; default: - throw new RuntimeException("Command 'version' or 'verack' expected, but was '" + throw new NodeException("Command 'version' or 'verack' expected, but was '" + msg.getPayload().getCommand() + "'"); } } @@ -173,6 +173,9 @@ public class Connection implements Runnable { } catch (IOException | NodeException e) { LOG.debug("disconnection from node " + node + ": " + e.getMessage(), e); disconnect(); + } catch (RuntimeException e) { + disconnect(); + throw e; } } @@ -215,6 +218,8 @@ public class Connection implements Runnable { listener.receive(objectMessage); ctx.getInventory().storeObject(objectMessage); // offer object to some random nodes so it gets distributed throughout the network: + // FIXME: don't do this while we catch up after initialising our first connection + // (that might be a bit tricky to do) ctx.getNetworkHandler().offer(objectMessage.getInventoryVector()); } catch (InsufficientProofOfWorkException e) { LOG.warn(e.getMessage()); diff --git a/repositories/src/main/java/ch/dissem/bitmessage/repository/JdbcNodeRegistry.java b/repositories/src/main/java/ch/dissem/bitmessage/repository/JdbcNodeRegistry.java index 7deaa3d..4b32946 100644 --- a/repositories/src/main/java/ch/dissem/bitmessage/repository/JdbcNodeRegistry.java +++ b/repositories/src/main/java/ch/dissem/bitmessage/repository/JdbcNodeRegistry.java @@ -45,6 +45,7 @@ public class JdbcNodeRegistry extends JdbcHelper implements NodeRegistry { if (result.isEmpty()) { try (InputStream in = getClass().getClassLoader().getResourceAsStream("nodes.txt")) { Scanner scanner = new Scanner(in); + long stream = 1; while (scanner.hasNext()) { try { String line = scanner.nextLine().trim(); @@ -52,10 +53,14 @@ public class JdbcNodeRegistry extends JdbcHelper implements NodeRegistry { // Ignore continue; } - int portIndex = line.lastIndexOf(':'); - InetAddress inetAddress = InetAddress.getByName(line.substring(0, portIndex)); - int port = Integer.valueOf(line.substring(portIndex + 1)); - result.add(new NetworkAddress.Builder().ip(inetAddress).port(port).build()); + if (line.startsWith("[stream")) { + stream = Long.parseLong(line.substring(8, line.lastIndexOf(']'))); + } else { + int portIndex = line.lastIndexOf(':'); + InetAddress inetAddress = InetAddress.getByName(line.substring(0, portIndex)); + int port = Integer.valueOf(line.substring(portIndex + 1)); + result.add(new NetworkAddress.Builder().ip(inetAddress).port(port).stream(stream).build()); + } } catch (IOException e) { LOG.warn(e.getMessage(), e); } diff --git a/repositories/src/main/resources/nodes.txt b/repositories/src/main/resources/nodes.txt index ad76447..b728ba5 100644 --- a/repositories/src/main/resources/nodes.txt +++ b/repositories/src/main/resources/nodes.txt @@ -1,3 +1,5 @@ +[stream 1] + [2604:2000:1380:9f:82e:148b:2746:d0c7]:8080 5.45.99.75:8444 75.167.159.54:8444 @@ -7,4 +9,7 @@ 178.62.12.187:8448 24.188.198.204:8111 109.147.204.113:1195 -178.11.46.221:8444 \ No newline at end of file +178.11.46.221:8444 + +[stream 2] +# none yet \ No newline at end of file diff --git a/repositories/src/test/java/ch/dissem/bitmessage/repository/JdbcNodeRegistryTest.java b/repositories/src/test/java/ch/dissem/bitmessage/repository/JdbcNodeRegistryTest.java index b4f60c0..2792cb0 100644 --- a/repositories/src/test/java/ch/dissem/bitmessage/repository/JdbcNodeRegistryTest.java +++ b/repositories/src/test/java/ch/dissem/bitmessage/repository/JdbcNodeRegistryTest.java @@ -48,8 +48,8 @@ public class JdbcNodeRegistryTest { @Test public void testInitNodes() throws Exception { config.reset(); - List knownAddresses = registry.getKnownAddresses(1, 1); - assertEquals(10, knownAddresses.size()); + List knownAddresses = registry.getKnownAddresses(2, 1); + assertEquals(2, knownAddresses.size()); } @Test