forked from I2P_Developers/i2p.i2p
propagate from branch 'i2p.i2p.zzz.i2cp' (head d4ac8162a4ba299ac912640f19076c3c90afdc67)
to branch 'i2p.i2p' (head adc5102c93383e01c74b87f04449dc9c307f6e75)
This commit is contained in:
@ -593,8 +593,9 @@ class ConnectionManager {
|
||||
Long id = Long.valueOf(_context.random().nextLong(Packet.MAX_STREAM_ID-1)+1);
|
||||
PacketLocal packet = new PacketLocal(_context, peer);
|
||||
packet.setSendStreamId(id.longValue());
|
||||
packet.setFlag(Packet.FLAG_ECHO);
|
||||
packet.setFlag(Packet.FLAG_SIGNATURE_INCLUDED);
|
||||
packet.setFlag(Packet.FLAG_ECHO |
|
||||
Packet.FLAG_NO_ACK |
|
||||
Packet.FLAG_SIGNATURE_INCLUDED);
|
||||
packet.setOptionalFrom(_session.getMyDestination());
|
||||
//if ( (keyToUse != null) && (tagsToSend != null) ) {
|
||||
// packet.setKeyUsed(keyToUse);
|
||||
|
@ -295,8 +295,15 @@ class Packet {
|
||||
*/
|
||||
public boolean isFlagSet(int flag) { return 0 != (_flags & flag); }
|
||||
|
||||
/**
|
||||
* @param flag bitmask of any flag(s)
|
||||
*/
|
||||
public void setFlag(int flag) { _flags |= flag; }
|
||||
|
||||
/**
|
||||
* @param flag bitmask of any flag(s)
|
||||
* @param set true to set, false to clear
|
||||
*/
|
||||
public void setFlag(int flag, boolean set) {
|
||||
if (set)
|
||||
_flags |= flag;
|
||||
@ -304,7 +311,7 @@ class Packet {
|
||||
_flags &= ~flag;
|
||||
}
|
||||
|
||||
public void setFlags(int flags) { _flags = flags; }
|
||||
private void setFlags(int flags) { _flags = flags; }
|
||||
|
||||
/** the signature on the packet (only included if the flag for it is set)
|
||||
* @return signature on the packet if the flag for signatures is set
|
||||
|
@ -349,8 +349,7 @@ class PacketHandler {
|
||||
}
|
||||
} else {
|
||||
PacketLocal pong = new PacketLocal(_context, packet.getOptionalFrom());
|
||||
pong.setFlag(Packet.FLAG_ECHO, true);
|
||||
pong.setFlag(Packet.FLAG_SIGNATURE_INCLUDED, false);
|
||||
pong.setFlag(Packet.FLAG_ECHO | Packet.FLAG_NO_ACK);
|
||||
pong.setReceiveStreamId(packet.getSendStreamId());
|
||||
_manager.getPacketQueue().enqueue(pong);
|
||||
}
|
||||
|
@ -109,7 +109,13 @@ class PacketQueue {
|
||||
options.setTagsToSend(INITIAL_TAGS_TO_SEND);
|
||||
options.setTagThreshold(MIN_TAG_THRESHOLD);
|
||||
} else if (packet.isFlagSet(FLAGS_FINAL_TAGS)) {
|
||||
options.setSendLeaseSet(false);
|
||||
if (packet.isFlagSet(Packet.FLAG_ECHO)) {
|
||||
// Send LS for PING, not for PONG
|
||||
if (packet.getSendStreamId() <= 0) // pong
|
||||
options.setSendLeaseSet(false);
|
||||
} else {
|
||||
options.setSendLeaseSet(false);
|
||||
}
|
||||
options.setTagsToSend(FINAL_TAGS_TO_SEND);
|
||||
options.setTagThreshold(FINAL_TAG_THRESHOLD);
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user