minor transport cleanup

This commit is contained in:
zzz
2015-03-08 20:02:28 +00:00
parent 9b73fcda40
commit 49e1e1c8a4
3 changed files with 11 additions and 6 deletions

View File

@ -849,8 +849,8 @@ class EstablishState {
_log.debug(prefix()+"Clock skew: " + diff + " ms");
}
sendInboundConfirm(_aliceIdent, tsA);
_con.setRemotePeer(_aliceIdent);
sendInboundConfirm(_aliceIdent, tsA);
if (_log.shouldLog(Log.DEBUG))
_log.debug(prefix()+"e_bobSig is " + _e_bobSig.length + " bytes long");
byte iv[] = _curEncrypted; // reuse buf

View File

@ -141,8 +141,9 @@ class IntroductionManager {
if (_log.shouldLog(Log.DEBUG))
_log.debug("removing peer " + peer.getRemoteHostId() + ", weRelayToThemAs "
+ peer.getWeRelayToThemAs() + ", theyRelayToUsAs " + peer.getTheyRelayToUsAs());
if (peer.getWeRelayToThemAs() > 0)
_outbound.remove(Long.valueOf(peer.getWeRelayToThemAs()));
long id = peer.getWeRelayToThemAs();
if (id > 0)
_outbound.remove(Long.valueOf(id));
if (peer.getTheyRelayToUsAs() > 0) {
_inbound.remove(peer);
}
@ -306,6 +307,9 @@ class IntroductionManager {
* Send a HolePunch to Alice, who will soon be sending us a RelayRequest.
* We should already have a session with Bob, but probably not with Alice.
*
* If we don't have a session with Bob, we removed the relay tag from
* our _outbound table, so this won't work.
*
* We do some throttling here.
*/
void receiveRelayIntro(RemoteHostId bob, UDPPacketReader reader) {
@ -432,7 +436,7 @@ class IntroductionManager {
if (_log.shouldLog(Log.INFO))
_log.info("Receive relay request from " + alice
+ " with unknown tag");
_context.statManager().addRateData("udp.receiveRelayRequestBadTag", 1, 0);
_context.statManager().addRateData("udp.receiveRelayRequestBadTag", 1);
return;
}
if (_log.shouldLog(Log.INFO))
@ -442,7 +446,7 @@ class IntroductionManager {
// TODO throttle based on alice identity and/or intro tag?
_context.statManager().addRateData("udp.receiveRelayRequest", 1, 0);
_context.statManager().addRateData("udp.receiveRelayRequest", 1);
// send that peer an introduction for alice
_transport.send(_builder.buildRelayIntro(alice, charlie, reader.getRelayRequestReader()));

View File

@ -16,6 +16,7 @@ import net.i2p.data.Hash;
import net.i2p.data.router.RouterIdentity;
import net.i2p.data.SessionKey;
import net.i2p.data.Signature;
import net.i2p.router.transport.TransportUtil;
import net.i2p.util.Addresses;
import net.i2p.util.Log;
import net.i2p.util.SimpleByteCache;
@ -1222,7 +1223,7 @@ class PacketBuilder {
byte ikey[] = addr.getIntroducerKey(i);
long tag = addr.getIntroducerTag(i);
// let's not use an introducer on a privileged port, sounds like trouble
if (ikey == null || iport < 1024 || iport > 65535 ||
if (ikey == null || !TransportUtil.isValidPort(iport) ||
iaddr == null || tag <= 0 ||
// must be IPv4 for now as we don't send Alice IP/port, see below
iaddr.getAddress().length != 4 ||