I2CP Multisession - Work in progress:

Fix NPE in receiveMessage()
This commit is contained in:
zzz
2015-04-18 20:45:30 +00:00
parent ff5d29de1a
commit 57b641bf63
3 changed files with 27 additions and 2 deletions

View File

@@ -698,6 +698,8 @@ class ClientConnectionRunner {
*
* Note that no failure indication is available.
* Fails silently on e.g. queue overflow to client, client dead, etc.
*
* @param toDest non-null
* @param fromDest generally null when from remote, non-null if from local
*/
void receiveMessage(Destination toDest, Destination fromDest, Payload payload) {
@@ -708,6 +710,26 @@ class ClientConnectionRunner {
j.runJob();
}
/**
* Asynchronously deliver the message to the current runner
*
* Note that no failure indication is available.
* Fails silently on e.g. queue overflow to client, client dead, etc.
*
* @param toHash non-null
* @param fromDest generally null when from remote, non-null if from local
* @since 0.9.20
*/
void receiveMessage(Hash toHash, Destination fromDest, Payload payload) {
SessionParams sp = _sessions.get(toHash);
if (sp == null) {
if (_log.shouldLog(Log.WARN))
_log.warn("No session found for receiveMessage()");
return;
}
receiveMessage(sp.dest, fromDest, payload);
}
/**
* Send async abuse message to the client
*

View File

@@ -627,7 +627,10 @@ class ClientManager {
if (runner != null) {
//_ctx.statManager().addRateData("client.receiveMessageSize",
// _msg.getPayload().getSize(), 0);
runner.receiveMessage(dest, null, _msg.getPayload());
if (dest != null)
runner.receiveMessage(dest, null, _msg.getPayload());
else
runner.receiveMessage(_msg.getDestinationHash(), null, _msg.getPayload());
} else {
// no client connection...
// we should pool these somewhere...

View File

@@ -32,7 +32,7 @@ class MessageReceivedJob extends JobImpl {
private final boolean _sendDirect;
/**
* @param toDest requred to pick session
* @param toDest non-null, required to pick session
* @param fromDest ignored, generally null
*/
public MessageReceivedJob(RouterContext ctx, ClientConnectionRunner runner, Destination toDest,