diff --git a/router/java/src/net/i2p/router/transport/udp/PacketBuilder2.java b/router/java/src/net/i2p/router/transport/udp/PacketBuilder2.java index aed6689a4..c0569fb0f 100644 --- a/router/java/src/net/i2p/router/transport/udp/PacketBuilder2.java +++ b/router/java/src/net/i2p/router/transport/udp/PacketBuilder2.java @@ -359,6 +359,7 @@ class PacketBuilder2 { public UDPPacket buildSessionDestroyPacket(int reason, SSU2Sender peer) { if (_log.shouldDebug()) _log.debug("Sending termination " + reason + " to : " + peer); + peer.setDestroyReason(reason); List blocks = new ArrayList(2); if (peer.isIPv6() || !_transport.isSnatted()) { // update token diff --git a/router/java/src/net/i2p/router/transport/udp/PeerState2.java b/router/java/src/net/i2p/router/transport/udp/PeerState2.java index 1d192e5e4..41ba937ae 100644 --- a/router/java/src/net/i2p/router/transport/udp/PeerState2.java +++ b/router/java/src/net/i2p/router/transport/udp/PeerState2.java @@ -67,6 +67,7 @@ public class PeerState2 extends PeerState implements SSU2Payload.PayloadCallback private long _sentMessagesLastExpired; private byte[] _ourIP; private int _ourPort; + private int _destroyReason; // Session Confirmed retransmit private byte[][] _sessConfForReTX; @@ -328,7 +329,7 @@ public class PeerState2 extends PeerState implements SSU2Payload.PayloadCallback /** * @since 0.9.57 */ - public void setDestroyReason(int reason) { /* todo */ } + public void setDestroyReason(int reason) { _destroyReason = reason; } /// end SSU2Sender interface /// @@ -336,6 +337,18 @@ public class PeerState2 extends PeerState implements SSU2Payload.PayloadCallback byte[] getRcvHeaderEncryptKey1() { return _rcvHeaderEncryptKey1; } byte[] getRcvHeaderEncryptKey2() { return _rcvHeaderEncryptKey2; } + /** + * @return 0 (REASON_UNSPEC) if unset + * @since 0.9.57 for PeerStateDestroyed + */ + int getDestroyReason() { return _destroyReason; } + + /** + * @since 0.9.57 for PeerStateDestroyed + */ + CipherState getRcvCipher() { return _rcvCha; } + + void setOurAddress(byte[] ip, int port) { _ourIP = ip; _ourPort = port; } @@ -663,6 +676,8 @@ public class PeerState2 extends PeerState implements SSU2Payload.PayloadCallback } public void gotToken(long token, long expires) { + if (_log.shouldInfo()) + _log.info("Got TOKEN block: " + token + " expires " + DataHelper.formatTime(expires) + " on " + this); _transport.getEstablisher().addOutboundToken(_remoteHostId, token, expires); }