I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit 581b9157 authored by zzz's avatar zzz
Browse files

Call session.propogateError() on reception of SessionStatusMessage with bad...

Call session.propogateError() on reception of SessionStatusMessage with bad status or DisconnectMessage
parent e293b25b
No related branches found
No related tags found
No related merge requests found
......@@ -12,6 +12,7 @@ package net.i2p.client;
import net.i2p.I2PAppContext;
import net.i2p.data.i2cp.DisconnectMessage;
import net.i2p.data.i2cp.I2CPMessage;
import net.i2p.util.Log;
/**
* Handle I2CP disconnect messages from the router
......@@ -24,7 +25,9 @@ class DisconnectMessageHandler extends HandlerImpl {
}
public void handleMessage(I2CPMessage message, I2PSessionImpl session) {
_log.debug("Handle message " + message);
if (_log.shouldLog(Log.DEBUG))
_log.debug("Handle message " + message);
session.propogateError(((DisconnectMessage)message).getReason(), new I2PSessionException("Disconnect Message received"));
session.destroySession(false);
}
}
\ No newline at end of file
}
......@@ -39,7 +39,7 @@ public interface I2PSessionListener {
/**
* Notify the client that some error occurred
*
* @param null can be null? or not?
*/
void errorOccurred(I2PSession session, String message, Throwable error);
}
......@@ -12,6 +12,7 @@ package net.i2p.client;
import net.i2p.I2PAppContext;
import net.i2p.data.i2cp.I2CPMessage;
import net.i2p.data.i2cp.SessionStatusMessage;
import net.i2p.util.Log;
/**
* Handle I2CP SessionStatusMessagese from the router, updating the session as
......@@ -25,7 +26,8 @@ class SessionStatusMessageHandler extends HandlerImpl {
}
public void handleMessage(I2CPMessage message, I2PSessionImpl session) {
_log.debug("Handle message " + message);
if (_log.shouldLog(Log.DEBUG))
_log.debug("Handle message " + message);
SessionStatusMessage msg = (SessionStatusMessage) message;
session.setSessionId(msg.getSessionId());
switch (msg.getStatus()) {
......@@ -33,19 +35,23 @@ class SessionStatusMessageHandler extends HandlerImpl {
_log.info("Session created successfully");
break;
case SessionStatusMessage.STATUS_DESTROYED:
_log.info("Session destroyed");
_log.warn("Session destroyed");
session.propogateError("Destroyed", new I2PSessionException("Session Status Message received"));
//session.destroySession();
session.reconnect(); // la la la
break;
case SessionStatusMessage.STATUS_INVALID:
_log.warn("Session invalid");
session.propogateError("Invalid", new I2PSessionException("Session Status Message received"));
session.destroySession(); // ok, honor this destroy message, because we're b0rked
break;
case SessionStatusMessage.STATUS_UPDATED:
_log.info("Session status updated");
break;
default:
_log.warn("Unknown session status sent: " + msg.getStatus());
if (_log.shouldLog(Log.WARN))
_log.warn("Unknown session status sent: " + msg.getStatus());
}
return;
}
}
\ No newline at end of file
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment