forked from I2P_Developers/i2p.i2p
I2CP Multisession - Work in progress:
Fix NPE in receiveMessage()
This commit is contained in:
@@ -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
|
||||
*
|
||||
|
||||
@@ -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...
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user