* Outbound message/Reachability:
- Fix a bug from -19 causing the persistent lease selection removed in -17 to be back again - Use netDb-listed-unreachable instead of detected-unreachable for exclusion of unreachable peers from selected leases, as there are potential anonymity problems with using detected-unreachable - Tweak logging some more * NetDb stats: Remove a couple more including the inefficient stat_identities
This commit is contained in:
11
history.txt
11
history.txt
@ -1,3 +1,14 @@
|
|||||||
|
2008-04-20 zzz
|
||||||
|
* Outbound message/Reachability:
|
||||||
|
- Fix a bug from -19 causing the persistent lease selection
|
||||||
|
removed in -17 to be back again
|
||||||
|
- Use netDb-listed-unreachable instead of detected-unreachable
|
||||||
|
for exclusion of unreachable peers from selected leases,
|
||||||
|
as there are potential anonymity problems with using
|
||||||
|
detected-unreachable
|
||||||
|
- Tweak logging some more
|
||||||
|
* NetDb stats: Remove a couple more including the inefficient stat_identities
|
||||||
|
|
||||||
2008-04-17 zzz
|
2008-04-17 zzz
|
||||||
* Reachability:
|
* Reachability:
|
||||||
- Track unreachable peers persistently
|
- Track unreachable peers persistently
|
||||||
|
@ -17,7 +17,7 @@ import net.i2p.CoreVersion;
|
|||||||
public class RouterVersion {
|
public class RouterVersion {
|
||||||
public final static String ID = "$Revision: 1.548 $ $Date: 2008-02-10 15:00:00 $";
|
public final static String ID = "$Revision: 1.548 $ $Date: 2008-02-10 15:00:00 $";
|
||||||
public final static String VERSION = "0.6.1.32";
|
public final static String VERSION = "0.6.1.32";
|
||||||
public final static long BUILD = 19;
|
public final static long BUILD = 20;
|
||||||
public static void main(String args[]) {
|
public static void main(String args[]) {
|
||||||
System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
|
System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
|
||||||
System.out.println("Router ID: " + RouterVersion.ID);
|
System.out.println("Router ID: " + RouterVersion.ID);
|
||||||
|
@ -103,6 +103,7 @@ public class StatisticsManager implements Service {
|
|||||||
// stats.setProperty("router.id", RouterVersion.ID);
|
// stats.setProperty("router.id", RouterVersion.ID);
|
||||||
// stats.setProperty("core.id", CoreVersion.ID);
|
// stats.setProperty("core.id", CoreVersion.ID);
|
||||||
|
|
||||||
|
/***
|
||||||
int newlines = 0;
|
int newlines = 0;
|
||||||
FileInputStream in = null;
|
FileInputStream in = null;
|
||||||
try {
|
try {
|
||||||
@ -122,7 +123,7 @@ public class StatisticsManager implements Service {
|
|||||||
}
|
}
|
||||||
if (newlines > 0)
|
if (newlines > 0)
|
||||||
stats.setProperty("stat_identities", newlines+"");
|
stats.setProperty("stat_identities", newlines+"");
|
||||||
|
***/
|
||||||
|
|
||||||
if (_includePeerRankings) {
|
if (_includePeerRankings) {
|
||||||
if (false)
|
if (false)
|
||||||
@ -150,6 +151,7 @@ public class StatisticsManager implements Service {
|
|||||||
//includeRate("router.throttleTunnelProbTooFast", stats, new long[] { 60*60*1000 });
|
//includeRate("router.throttleTunnelProbTooFast", stats, new long[] { 60*60*1000 });
|
||||||
//includeRate("router.throttleTunnelProcessingTime1m", stats, new long[] { 60*60*1000 });
|
//includeRate("router.throttleTunnelProcessingTime1m", stats, new long[] { 60*60*1000 });
|
||||||
|
|
||||||
|
if (commentMeOutInDot33)
|
||||||
includeRate("router.fastPeers", stats, new long[] { 60*60*1000 });
|
includeRate("router.fastPeers", stats, new long[] { 60*60*1000 });
|
||||||
|
|
||||||
//includeRate("udp.statusOK", stats, new long[] { 20*60*1000 });
|
//includeRate("udp.statusOK", stats, new long[] { 20*60*1000 });
|
||||||
|
@ -16,6 +16,7 @@ import net.i2p.data.Hash;
|
|||||||
import net.i2p.data.Lease;
|
import net.i2p.data.Lease;
|
||||||
import net.i2p.data.LeaseSet;
|
import net.i2p.data.LeaseSet;
|
||||||
import net.i2p.data.PublicKey;
|
import net.i2p.data.PublicKey;
|
||||||
|
import net.i2p.data.RouterInfo;
|
||||||
import net.i2p.data.SessionKey;
|
import net.i2p.data.SessionKey;
|
||||||
import net.i2p.data.Payload;
|
import net.i2p.data.Payload;
|
||||||
import net.i2p.data.i2cp.MessageId;
|
import net.i2p.data.i2cp.MessageId;
|
||||||
@ -320,20 +321,29 @@ public class OutboundClientMessageOneShotJob extends JobImpl {
|
|||||||
} else {
|
} else {
|
||||||
****/
|
****/
|
||||||
|
|
||||||
|
|
||||||
// Avoid a lease on a gateway we think is unreachable, if possible
|
// Avoid a lease on a gateway we think is unreachable, if possible
|
||||||
for (int i = 0; i < _leaseSet.getLeaseCount(); i++) {
|
for (int i = 0; i < leases.size(); i++) {
|
||||||
Lease l = _leaseSet.getLease(i);
|
Lease l = (Lease) leases.get(i);
|
||||||
|
/***
|
||||||
|
*** Anonymity concerns with this, as the dest could act unreachable just to us, then
|
||||||
|
*** look at our lease selection.
|
||||||
|
*** Let's just look at whether the gw thinks it is unreachable instead -
|
||||||
|
*** unfortunately the "U" is rarely seen.
|
||||||
if (!getContext().commSystem().wasUnreachable(l.getGateway())) {
|
if (!getContext().commSystem().wasUnreachable(l.getGateway())) {
|
||||||
|
***/
|
||||||
|
RouterInfo ri = getContext().netDb().lookupRouterInfoLocally(l.getGateway());
|
||||||
|
if (ri == null || ri.getCapabilities().indexOf(Router.CAPABILITY_UNREACHABLE) < 0) {
|
||||||
_lease = l;
|
_lease = l;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (_log.shouldLog(Log.WARN))
|
if (_log.shouldLog(Log.WARN))
|
||||||
_log.warn(getJobId() + ": Skipping unreachable (by us) gateway " + l.getGateway());
|
_log.warn(getJobId() + ": Skipping unreachable gateway " + l.getGateway() + " for " + _toString);
|
||||||
}
|
}
|
||||||
if (_lease == null) {
|
if (_lease == null) {
|
||||||
_lease = (Lease)leases.get(0);
|
_lease = (Lease)leases.get(0);
|
||||||
if (_log.shouldLog(Log.WARN))
|
if (_log.shouldLog(Log.WARN))
|
||||||
_log.warn(getJobId() + ": All leases are unreachable (by us) for " + _toString);
|
_log.warn(getJobId() + ": All leases are unreachable for " + _toString);
|
||||||
}
|
}
|
||||||
/*** removed until we fix SSU reachability
|
/*** removed until we fix SSU reachability
|
||||||
synchronized (_leaseCache) {
|
synchronized (_leaseCache) {
|
||||||
|
Reference in New Issue
Block a user