diff --git a/router/java/src/net/i2p/router/client/ClientManager.java b/router/java/src/net/i2p/router/client/ClientManager.java index 03be0de3eb9724ea210c6c80c031a350d5f4a8bc..07f234f1d038d7f8ad9c6fc5228e49d99c73518d 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()); } } }