From 627d0d29dbdf02aa44266b803b9d1e840814d804 Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 30 Oct 2015 16:53:45 +0000 Subject: [PATCH] Router: Fix cascading I2CP error (ticket #1692) caused by not setting message ID. only happens when serialized (external I2CP) --- history.txt | 3 +++ router/java/src/net/i2p/router/RouterVersion.java | 2 +- .../src/net/i2p/router/client/ClientMessageEventListener.java | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/history.txt b/history.txt index 08fdabe18..229e72fdc 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,6 @@ +2015-10-30 zzz + * Router: Fix cascading I2CP error (ticket #1692) + 2015-10-21 zzz * i2psnark: More consistency and torrent links in messages * Router: Increase timer thread priority diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 5b1ba79e3..f5c926454 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 19; + public final static long BUILD = 20; /** for example "-test" */ public final static String EXTRA = ""; diff --git a/router/java/src/net/i2p/router/client/ClientMessageEventListener.java b/router/java/src/net/i2p/router/client/ClientMessageEventListener.java index 8db9da336..d5697571e 100644 --- a/router/java/src/net/i2p/router/client/ClientMessageEventListener.java +++ b/router/java/src/net/i2p/router/client/ClientMessageEventListener.java @@ -196,7 +196,6 @@ class ClientMessageEventListener implements I2CPMessageReader.I2CPMessageEventLi private void handleSetDate(SetDateMessage message) { //_context.clock().setNow(message.getDate().getTime()); } - /** * Handle a CreateSessionMessage. @@ -378,6 +377,7 @@ class ClientMessageEventListener implements I2CPMessageReader.I2CPMessageEventLi // do this instead: if (sid != null && message.getNonce() > 0) { MessageStatusMessage status = new MessageStatusMessage(); + status.setMessageId(_runner.getNextMessageId()); status.setSessionId(sid.getSessionId()); status.setSize(0); status.setNonce(message.getNonce()); @@ -461,7 +461,7 @@ class ClientMessageEventListener implements I2CPMessageReader.I2CPMessageEventLi } /** override for testing */ - protected void handleCreateLeaseSet(CreateLeaseSetMessage message) { + protected void handleCreateLeaseSet(CreateLeaseSetMessage message) { if ( (message.getLeaseSet() == null) || (message.getPrivateKey() == null) || (message.getSigningPrivateKey() == null) ) { if (_log.shouldLog(Log.ERROR)) _log.error("Null lease set granted: " + message);