I2CP: Meta LS error code handling

This commit is contained in:
zzz
2020-06-12 15:58:30 +00:00
parent 6ec95a7f13
commit 4c2bf3e42f
4 changed files with 23 additions and 0 deletions

View File

@ -113,6 +113,10 @@ public class I2PSocketException extends SocketException {
case MessageStatusMessage.STATUS_SEND_FAILURE_NO_LEASESET: case MessageStatusMessage.STATUS_SEND_FAILURE_NO_LEASESET:
return _x("Destination lease set not found"); return _x("Destination lease set not found");
// don't translate for now
case MessageStatusMessage.STATUS_SEND_FAILURE_META_LEASESET:
return "Meta lease set";
case SendMessageStatusListener.STATUS_CANCELLED: case SendMessageStatusListener.STATUS_CANCELLED:
return _x("Local destination shutdown"); return _x("Local destination shutdown");

View File

@ -344,6 +344,16 @@ class PacketQueue implements SendMessageStatusListener, Closeable {
} }
break; break;
case MessageStatusMessage.STATUS_SEND_FAILURE_META_LEASESET:
// TODO
_messageStatusMap.remove(id);
IOException ioe = new I2PSocketException(status);
con.getOutputStream().streamErrorOccurred(ioe);
con.getInputStream().streamErrorOccurred(ioe);
con.setConnectionError(ioe.getLocalizedMessage());
con.disconnect(false);
break;
case MessageStatusMessage.STATUS_SEND_BEST_EFFORT_SUCCESS: case MessageStatusMessage.STATUS_SEND_BEST_EFFORT_SUCCESS:
case MessageStatusMessage.STATUS_SEND_GUARANTEED_SUCCESS: case MessageStatusMessage.STATUS_SEND_GUARANTEED_SUCCESS:
case MessageStatusMessage.STATUS_SEND_SUCCESS_LOCAL: case MessageStatusMessage.STATUS_SEND_SUCCESS_LOCAL:

View File

@ -156,6 +156,7 @@ class MessageState {
case MessageStatusMessage.STATUS_SEND_FAILURE_BAD_LEASESET: case MessageStatusMessage.STATUS_SEND_FAILURE_BAD_LEASESET:
case MessageStatusMessage.STATUS_SEND_FAILURE_EXPIRED_LEASESET: case MessageStatusMessage.STATUS_SEND_FAILURE_EXPIRED_LEASESET:
case MessageStatusMessage.STATUS_SEND_FAILURE_NO_LEASESET: case MessageStatusMessage.STATUS_SEND_FAILURE_NO_LEASESET:
case MessageStatusMessage.STATUS_SEND_FAILURE_META_LEASESET:
case SendMessageStatusListener.STATUS_CANCELLED: case SendMessageStatusListener.STATUS_CANCELLED:
// does not trump success // does not trump success
if (_state != State.SUCCESS) if (_state != State.SUCCESS)

View File

@ -189,6 +189,14 @@ public class MessageStatusMessage extends I2CPMessageImpl {
*/ */
public final static int STATUS_SEND_FAILURE_META_LEASESET = 22; public final static int STATUS_SEND_FAILURE_META_LEASESET = 22;
// NOTE:
// Add any new status codes to handlers in:
// net.i2p.client.impl.MessageState
// net.i2p.client.impl.MessageStatusMessageHandler
// net.i2p.client.streaming.I2PSocketException
// net.i2p.client.streaming.impl.PacketQueue
// net.i2p.i2ptunnel.I2PTunnelHTTPClientBase
// and update http://i2p-projekt.i2p/spec/i2cp
public MessageStatusMessage() { public MessageStatusMessage() {
_sessionId = -1; _sessionId = -1;