forked from I2P_Developers/i2p.i2p
Router: ProfileOrganizer and TunnelPeerSelector cleanup
of unused code, in prep for some redesign
This commit is contained in:
@@ -552,42 +552,6 @@ public class ProfileOrganizer {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a set of Hashes for peers that are well integrated into the network.
|
||||
*
|
||||
* @deprecated unused
|
||||
*/
|
||||
@Deprecated
|
||||
public void selectWellIntegratedPeers(int howMany, Set<Hash> exclude, Set<Hash> matches) {
|
||||
selectWellIntegratedPeers(howMany, exclude, matches, 0, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a set of Hashes for peers that are well integrated into the network.
|
||||
*
|
||||
* @param mask 0-4 Number of bytes to match to determine if peers in the same IP range should
|
||||
* not be in the same tunnel. 0 = disable check; 1 = /8; 2 = /16; 3 = /24; 4 = exact IP match
|
||||
* @since 0.9.53 added ipSet param
|
||||
* @deprecated unused
|
||||
*/
|
||||
@Deprecated
|
||||
public void selectWellIntegratedPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, int mask, MaskedIPSet ipSet) {
|
||||
getReadLock();
|
||||
try {
|
||||
locked_selectPeers(_wellIntegratedPeers, howMany, exclude, matches, mask, ipSet);
|
||||
} finally { releaseReadLock(); }
|
||||
if (matches.size() < howMany) {
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("selectWellIntegrated("+howMany+"), not enough integrated (" + matches.size() + ") going on to notFailing");
|
||||
selectNotFailingPeers(howMany, exclude, matches, mask, ipSet);
|
||||
} else {
|
||||
if (_log.shouldDebug())
|
||||
_log.debug("selectWellIntegrated("+howMany+"), found enough well integrated (" + matches.size() + ")");
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a set of Hashes for peers that are not failing, preferring ones that
|
||||
* we are already talking with
|
||||
@@ -773,7 +737,7 @@ public class ProfileOrganizer {
|
||||
* I'm not quite sure why you'd want this... (other than for failover from the better results)
|
||||
*
|
||||
*/
|
||||
public void selectFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches) {
|
||||
private void selectFailingPeers(int howMany, Set<Hash> exclude, Set<Hash> matches) {
|
||||
getReadLock();
|
||||
try {
|
||||
locked_selectPeers(_failingPeers, howMany, exclude, matches);
|
||||
|
||||
@@ -82,22 +82,6 @@ public abstract class TunnelPeerSelector extends ConnectChecker {
|
||||
length = 0;
|
||||
else if (length > 7) // as documented in tunnel.html
|
||||
length = 7;
|
||||
/*
|
||||
if ( (ctx.tunnelManager().getOutboundTunnelCount() <= 0) ||
|
||||
(ctx.tunnelManager().getFreeTunnelCount() <= 0) ) {
|
||||
Log log = ctx.logManager().getLog(TunnelPeerSelector.class);
|
||||
// no tunnels to build tunnels with
|
||||
if (settings.getAllowZeroHop()) {
|
||||
if (log.shouldLog(Log.INFO))
|
||||
log.info("no outbound tunnels or free inbound tunnels, but we do allow zeroHop: " + settings);
|
||||
return 0;
|
||||
} else {
|
||||
if (log.shouldLog(Log.WARN))
|
||||
log.warn("no outbound tunnels or free inbound tunnels, and we dont allow zeroHop: " + settings);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
*/
|
||||
return length;
|
||||
}
|
||||
|
||||
@@ -247,90 +231,6 @@ public abstract class TunnelPeerSelector extends ConnectChecker {
|
||||
peers.add(peer.getIdentity().calculateHash());
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
String cap = peer.getCapabilities();
|
||||
if (cap == null) {
|
||||
peers.add(peer.getIdentity().calculateHash());
|
||||
continue;
|
||||
}
|
||||
for (int j = 0; j < excl.length; j++) {
|
||||
if (cap.indexOf(excl[j]) >= 0) {
|
||||
peers.add(peer.getIdentity().calculateHash());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
int maxLen = 0;
|
||||
if (cap.indexOf(FloodfillNetworkDatabaseFacade.CAPACITY_FLOODFILL) >= 0)
|
||||
maxLen++;
|
||||
if (cap.indexOf(Router.CAPABILITY_REACHABLE) >= 0)
|
||||
maxLen++;
|
||||
if (cap.indexOf(Router.CAPABILITY_UNREACHABLE) >= 0)
|
||||
maxLen++;
|
||||
if (cap.length() <= maxLen)
|
||||
peers.add(peer.getIdentity().calculateHash());
|
||||
// otherwise, it contains flags we aren't trying to focus on,
|
||||
// so don't exclude it based on published capacity
|
||||
|
||||
if (filterUptime(ctx, isInbound, isExploratory)) {
|
||||
Properties opts = peer.getOptions();
|
||||
if (opts != null) {
|
||||
String val = opts.getProperty("stat_uptime");
|
||||
long uptimeMs = 0;
|
||||
if (val != null) {
|
||||
long factor = 1;
|
||||
if (val.endsWith("ms")) {
|
||||
factor = 1;
|
||||
val = val.substring(0, val.length()-2);
|
||||
} else if (val.endsWith("s")) {
|
||||
factor = 1000l;
|
||||
val = val.substring(0, val.length()-1);
|
||||
} else if (val.endsWith("m")) {
|
||||
factor = 60*1000l;
|
||||
val = val.substring(0, val.length()-1);
|
||||
} else if (val.endsWith("h")) {
|
||||
factor = 60*60*1000l;
|
||||
val = val.substring(0, val.length()-1);
|
||||
} else if (val.endsWith("d")) {
|
||||
factor = 24*60*60*1000l;
|
||||
val = val.substring(0, val.length()-1);
|
||||
}
|
||||
try { uptimeMs = Long.parseLong(val); } catch (NumberFormatException nfe) {}
|
||||
uptimeMs *= factor;
|
||||
} else {
|
||||
// not publishing an uptime, so exclude it
|
||||
peers.add(peer.getIdentity().calculateHash());
|
||||
continue;
|
||||
}
|
||||
|
||||
long infoAge = ctx.clock().now() - peer.getPublished();
|
||||
if (infoAge < 0) {
|
||||
infoAge = 0;
|
||||
} else if (infoAge > 24*60*60*1000) {
|
||||
// Only exclude long-unseen peers if we haven't just started up
|
||||
long DONT_EXCLUDE_PERIOD = 15*60*1000;
|
||||
if (ctx.router().getUptime() < DONT_EXCLUDE_PERIOD) {
|
||||
if (log.shouldLog(Log.DEBUG))
|
||||
log.debug("Not excluding a long-unseen peer, since we just started up.");
|
||||
} else {
|
||||
if (log.shouldLog(Log.DEBUG))
|
||||
log.debug("Excluding a long-unseen peer.");
|
||||
peers.add(peer.getIdentity().calculateHash());
|
||||
}
|
||||
//peers.add(peer.getIdentity().calculateHash());
|
||||
continue;
|
||||
} else {
|
||||
if (infoAge + uptimeMs < 2*60*60*1000) {
|
||||
// up for less than 2 hours, so exclude it
|
||||
peers.add(peer.getIdentity().calculateHash());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// not publishing stats, so exclude it
|
||||
peers.add(peer.getIdentity().calculateHash());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
/*
|
||||
@@ -513,60 +413,6 @@ public abstract class TunnelPeerSelector extends ConnectChecker {
|
||||
return false;
|
||||
if (VersionComparator.comp(v, MIN_VERSION) < 0)
|
||||
return true;
|
||||
|
||||
// uptime is always spoofed to 90m, so just remove all this
|
||||
/******
|
||||
String val = peer.getOption("stat_uptime");
|
||||
if (val != null) {
|
||||
long uptimeMs = 0;
|
||||
long factor = 1;
|
||||
if (val.endsWith("ms")) {
|
||||
factor = 1;
|
||||
val = val.substring(0, val.length()-2);
|
||||
} else if (val.endsWith("s")) {
|
||||
factor = 1000l;
|
||||
val = val.substring(0, val.length()-1);
|
||||
} else if (val.endsWith("m")) {
|
||||
factor = 60*1000l;
|
||||
val = val.substring(0, val.length()-1);
|
||||
} else if (val.endsWith("h")) {
|
||||
factor = 60*60*1000l;
|
||||
val = val.substring(0, val.length()-1);
|
||||
} else if (val.endsWith("d")) {
|
||||
factor = 24*60*60*1000l;
|
||||
val = val.substring(0, val.length()-1);
|
||||
}
|
||||
try { uptimeMs = Long.parseLong(val); } catch (NumberFormatException nfe) {}
|
||||
uptimeMs *= factor;
|
||||
|
||||
long infoAge = ctx.clock().now() - peer.getPublished();
|
||||
if (infoAge < 0) {
|
||||
return false;
|
||||
} else if (infoAge > 5*24*60*60*1000) {
|
||||
// Only exclude long-unseen peers if we haven't just started up
|
||||
if (ctx.router().getUptime() < DONT_EXCLUDE_PERIOD) {
|
||||
if (log.shouldLog(Log.DEBUG))
|
||||
log.debug("Not excluding a long-unseen peer, since we just started up.");
|
||||
return false;
|
||||
} else {
|
||||
if (log.shouldLog(Log.DEBUG))
|
||||
log.debug("Excluding a long-unseen peer.");
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if ( (infoAge + uptimeMs < 90*60*1000) && (ctx.router().getUptime() > DONT_EXCLUDE_PERIOD) ) {
|
||||
// up for less than 90 min (which is really 1h since an uptime of 1h-2h is published as 90m),
|
||||
// so exclude it
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// not publishing an uptime, so exclude it
|
||||
return true;
|
||||
}
|
||||
******/
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -631,33 +477,6 @@ public abstract class TunnelPeerSelector extends ConnectChecker {
|
||||
}
|
||||
}
|
||||
|
||||
/****
|
||||
private static final String PROP_OUTBOUND_EXPLORATORY_EXCLUDE_UPTIME = "router.outboundExploratoryExcludeUptime";
|
||||
private static final String PROP_OUTBOUND_CLIENT_EXCLUDE_UPTIME = "router.outboundClientExcludeUptime";
|
||||
private static final String PROP_INBOUND_EXPLORATORY_EXCLUDE_UPTIME = "router.inboundExploratoryExcludeUptime";
|
||||
private static final String PROP_INBOUND_CLIENT_EXCLUDE_UPTIME = "router.inboundClientExcludeUptime";
|
||||
****/
|
||||
|
||||
/**
|
||||
* do we want to skip peers who haven't been up for long?
|
||||
* @return true unless configured otherwise
|
||||
*/
|
||||
/****
|
||||
protected boolean filterUptime(boolean isInbound, boolean isExploratory) {
|
||||
if (isExploratory) {
|
||||
if (isInbound)
|
||||
return ctx.getProperty(PROP_INBOUND_EXPLORATORY_EXCLUDE_UPTIME, true);
|
||||
else
|
||||
return ctx.getProperty(PROP_OUTBOUND_EXPLORATORY_EXCLUDE_UPTIME, true);
|
||||
} else {
|
||||
if (isInbound)
|
||||
return ctx.getProperty(PROP_INBOUND_CLIENT_EXCLUDE_UPTIME, true);
|
||||
else
|
||||
return ctx.getProperty(PROP_OUTBOUND_CLIENT_EXCLUDE_UPTIME, true);
|
||||
}
|
||||
}
|
||||
****/
|
||||
|
||||
/** see HashComparator */
|
||||
protected void orderPeers(List<Hash> rv, SessionKey key) {
|
||||
if (rv.size() > 1)
|
||||
|
||||
Reference in New Issue
Block a user