SSU2: Data phase more fixes

Fix writing follow-on fragment block
Call messageFullyReceived() for I2NP block
Override messageFullyReceived() to avoid NPE
This commit is contained in:
zzz
2022-03-02 09:05:09 -05:00
parent 9d9310a726
commit 7b6e6270ba
2 changed files with 11 additions and 1 deletions

View File

@@ -129,6 +129,15 @@ public class PeerState2 extends PeerState implements SSU2Payload.PayloadCallback
// _wantACKSendSince = 0;
}
/**
* We received the message specified completely.
* @param bytes if less than or equal to zero, message is a duplicate.
*/
@Override
void messageFullyReceived(Long messageId, int bytes) {
// TODO
}
// SSU 1 unsupported things
@Override
@@ -278,6 +287,7 @@ public class PeerState2 extends PeerState implements SSU2Payload.PayloadCallback
public void gotI2NP(I2NPMessage msg) {
// 9 byte header
int size = msg.getMessageSize() - 7;
messageFullyReceived(msg.getUniqueId(), size);
// complete message, skip IMF and MessageReceiver
_transport.messageReceived(msg, null, _remotePeer, 0, size);
}

View File

@@ -459,7 +459,7 @@ class SSU2Payload {
tgt[off++] = b;
DataHelper.toLong(tgt, off, 4, m.getMessageId());
off += 4;
return off + m.writeFragment(tgt, off, 0);
return off + m.writeFragment(tgt, off, f);
}
}