shitlist appropriately (continued)

This commit is contained in:
jrandom
2004-08-12 03:23:48 +00:00
committed by zzz
parent c5947c23bb
commit ebdc7d70a1
2 changed files with 24 additions and 18 deletions

View File

@ -272,7 +272,7 @@ class RestrictiveTCPConnection extends TCPConnection {
// not only do we remove the reference to the invalid peer
_context.netDb().fail(_remoteIdentity.getHash());
// but we make sure that we don't try to talk to them soon even if we get a new ref
_context.shitlist().shitlistRouter(_remoteIdentity.getHash());
_context.shitlist().shitlistRouter(_remoteIdentity.getHash(), "Invalid protocol version");
throw new DataFormatException("Peer uses an invalid version! dropping");
}
@ -280,7 +280,7 @@ class RestrictiveTCPConnection extends TCPConnection {
boolean timeOk = validateTime();
if (_log.shouldLog(Log.DEBUG)) _log.debug("after validateTime [" + timeOk + "]...");
if (!timeOk) {
_context.shitlist().shitlistRouter(_remoteIdentity.getHash());
_context.shitlist().shitlistRouter(_remoteIdentity.getHash(), "Time too far out of sync");
throw new DataFormatException("Peer is too far out of sync with the current router's clock! dropping");
}
@ -288,7 +288,7 @@ class RestrictiveTCPConnection extends TCPConnection {
boolean peerReachable = validatePeerAddress();
if (_log.shouldLog(Log.DEBUG)) _log.debug("after validatePeerAddress [" + peerReachable + "]...");
if (!peerReachable) {
_context.shitlist().shitlistRouter(_remoteIdentity.getHash());
_context.shitlist().shitlistRouter(_remoteIdentity.getHash(), "Unreachable address");
throw new DataFormatException("Peer provided us with an unreachable router address, and we can't handle restricted routes yet! dropping");
}

View File

@ -190,11 +190,12 @@ public class TCPTransport extends TransportImpl {
if (_log.shouldLog(Log.WARN))
_log.warn("Unable to establish a socket in time to " + addr);
_context.profileManager().commErrorOccurred(target.getIdentity().getHash());
_context.shitlist().shitlistRouter(target.getIdentity().getHash(), "Unable to contact host");
return false;
}
if (_log.shouldLog(Log.DEBUG))
_log.debug("Socket created");
if (s != null) {
TCPConnection con = new RestrictiveTCPConnection(_context, s, true);
conCreated = _context.clock().now();
if (_log.shouldLog(Log.DEBUG))
@ -206,10 +207,14 @@ public class TCPTransport extends TransportImpl {
return established;
}
}
}
_context.shitlist().shitlistRouter(target.getIdentity().getHash(), "No addresses we can handle");
return false;
} catch (Throwable t) {
if (_log.shouldLog(Log.WARN))
_log.warn("Unexpected error establishing the connection", t);
_context.shitlist().shitlistRouter(target.getIdentity().getHash(), "Internal error connecting");
return false;
} finally {
long diff = conEstablished - startEstablish;
if ( ( (diff > 6000) || (conEstablished == 0) ) && (_log.shouldLog(Log.WARN)) ) {
@ -219,7 +224,6 @@ public class TCPTransport extends TransportImpl {
(conEstablished - conCreated) + "ms overall: " + diff);
}
}
return false;
}
protected Socket createSocket(RouterAddress addr) {
@ -444,7 +448,7 @@ public class TCPTransport extends TransportImpl {
con.closeConnection();
// remove the old ref, since they likely just created a new identity
_context.netDb().fail(target.getIdentity().getHash());
_context.shitlist().shitlistRouter(target.getIdentity().getHash());
_context.shitlist().shitlistRouter(target.getIdentity().getHash(), "Peer changed identities");
return false;
} else {
if (_log.shouldLog(Log.DEBUG))
@ -623,7 +627,9 @@ public class TCPTransport extends TransportImpl {
if (_log.shouldLog(Log.INFO))
_log.info("Unable to establish a connection to " + pending.getPeer());
failPending(pending);
_context.shitlist().shitlistRouter(pending.getPeer());
// shitlisted by establishConnection with a more detailed reason
//_context.shitlist().shitlistRouter(pending.getPeer(), "Unable to contact host");
//ProfileManager.getInstance().commErrorOccurred(pending.getPeer());
failedPending = _context.clock().now();
}