From b52e8d6b5c13b27787bcae75700a8671bc4ea7c8 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Tue, 25 Jun 2019 13:34:59 +0000 Subject: [PATCH] I2CP: Prevent sending message to a local meta destination --- .../java/src/net/i2p/router/client/ClientManager.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/router/java/src/net/i2p/router/client/ClientManager.java b/router/java/src/net/i2p/router/client/ClientManager.java index 03be0de3eb..07f234f1d0 100644 --- a/router/java/src/net/i2p/router/client/ClientManager.java +++ b/router/java/src/net/i2p/router/client/ClientManager.java @@ -445,6 +445,15 @@ class ClientManager { Job j = new DistributeLocal(toDest, runner, sender, fromDest, payload, msgId, messageNonce); //_ctx.jobQueue().addJob(j); j.runJob(); + } else if (!_metaDests.isEmpty() && _metaDests.contains(toDest)) { + // meta dests don't have runners but are local, and you can't send to them + ClientConnectionRunner sender = getRunner(fromDest); + if (sender == null) { + // sender went away + return; + } + int rc = MessageStatusMessage.STATUS_SEND_FAILURE_BAD_LEASESET; + sender.updateMessageDeliveryStatus(fromDest, msgId, messageNonce, rc); } else { // remote. w00t if (_log.shouldLog(Log.DEBUG)) @@ -764,7 +773,7 @@ class ClientManager { if (_log.shouldLog(Log.WARN)) _log.warn("Message received but we don't have a connection to " + dest + "/" + _msg.getDestinationHash() - + " currently. DROPPED"); + + " currently. DROPPED", new Exception()); } } } -- GitLab