propagate from branch 'i2p.i2p' (head d2198c4bc21a9d06194cdb2dce24945ebc9d1542)

to branch 'i2p.i2p.zzz.dhtsnark' (head 59fc0206608a5d1323a0acfbcb151d862fe95f95)
This commit is contained in:
zzz
2012-08-03 20:29:31 +00:00
490 changed files with 56553 additions and 45371 deletions

View File

@@ -62,7 +62,7 @@ import net.i2p.util.SimpleTimer2;
* @author Mark Wielaard (mark@klomp.org)
*/
public class TrackerClient implements Runnable {
private final Log _log = I2PAppContext.getGlobalContext().logManager().getLog(TrackerClient.class);
private final Log _log;
private static final String NO_EVENT = "";
private static final String STARTED_EVENT = "started";
private static final String COMPLETED_EVENT = "completed";
@@ -116,6 +116,7 @@ public class TrackerClient implements Runnable {
String id = urlencode(snark.getID());
_threadName = "TrackerClient " + id.substring(id.length() - 12);
_util = util;
_log = util.getContext().logManager().getLog(TrackerClient.class);
this.meta = meta;
this.additionalTrackerURL = additionalTrackerURL;
this.coordinator = coordinator;
@@ -183,7 +184,7 @@ public class TrackerClient implements Runnable {
private class Runner extends SimpleTimer2.TimedEvent {
public Runner(long delay) {
super(SimpleTimer2.getInstance(), delay);
super(_util.getContext().simpleTimer2(), delay);
}
public void timeReached() {
@@ -397,9 +398,10 @@ public class TrackerClient implements Runnable {
catch (IOException ioe)
{
// Probably not fatal (if it doesn't last to long...)
_util.debug
if (_log.shouldLog(Log.WARN))
_log.warn
("WARNING: Could not contact tracker at '"
+ tr.announce + "': " + ioe, Snark.WARNING);
+ tr.announce + "': " + ioe);
tr.trackerProblems = ioe.getMessage();
// don't show secondary tracker problems to the user
if (tr.isPrimary)
@@ -421,8 +423,9 @@ public class TrackerClient implements Runnable {
}
}
} else {
_util.debug("Not announcing to " + tr.announce + " last announce was " +
new Date(tr.lastRequestTime) + " interval is " + DataHelper.formatDuration(tr.interval), Snark.INFO);
if (_log.shouldLog(Log.INFO))
_log.info("Not announcing to " + tr.announce + " last announce was " +
new Date(tr.lastRequestTime) + " interval is " + DataHelper.formatDuration(tr.interval));
}
if ((!tr.stop) && maxSeenPeers < tr.seenPeers)
maxSeenPeers = tr.seenPeers;
@@ -432,7 +435,8 @@ public class TrackerClient implements Runnable {
if (coordinator.needOutboundPeers() && (meta == null || !meta.isPrivate()) && !stop) {
Set<PeerID> pids = coordinator.getPEXPeers();
if (!pids.isEmpty()) {
_util.debug("Got " + pids.size() + " from PEX", Snark.INFO);
if (_log.shouldLog(Log.INFO))
_log.info("Got " + pids.size() + " from PEX");
List<Peer> peers = new ArrayList(pids.size());
for (PeerID pID : pids) {
peers.add(new Peer(pID, snark.getID(), snark.getInfoHash(), snark.getMetaInfo()));
@@ -448,7 +452,8 @@ public class TrackerClient implements Runnable {
}
}
} else {
_util.debug("Not getting PEX peers", Snark.INFO);
if (_log.shouldLog(Log.INFO))
_log.info("Not getting PEX peers");
}
// Get peers from DHT
@@ -460,13 +465,15 @@ public class TrackerClient implements Runnable {
else
numwant = _util.getMaxConnections();
List<Hash> hashes = _util.getDHT().getPeers(snark.getInfoHash(), numwant, 2*60*1000);
_util.debug("Got " + hashes + " from DHT", Snark.INFO);
if (_log.shouldLog(Log.INFO))
_log.info("Got " + hashes + " from DHT");
// announce ourselves while the token is still good
// FIXME this needs to be in its own thread
if (!stop) {
// announce only to the 1 closest
int good = _util.getDHT().announce(snark.getInfoHash(), 1, 5*60*1000);
_util.debug("Sent " + good + " good announces to DHT", Snark.INFO);
if (_log.shouldLog(Log.INFO))
_log.info("Sent " + good + " good announces to DHT");
}
// now try these peers
@@ -487,7 +494,8 @@ public class TrackerClient implements Runnable {
}
}
} else {
_util.debug("Not getting DHT peers", Snark.INFO);
if (_log.shouldLog(Log.INFO))
_log.info("Not getting DHT peers");
}
@@ -498,7 +506,8 @@ public class TrackerClient implements Runnable {
return;
if (!runStarted)
_util.debug(" Retrying in one minute...", Snark.DEBUG);
if (_log.shouldLog(Log.DEBUG))
_log.debug(" Retrying in one minute...");
try {
// Sleep some minutes...
@@ -527,7 +536,7 @@ public class TrackerClient implements Runnable {
} // try
catch (Throwable t)
{
_util.debug("TrackerClient: " + t, Snark.ERROR, t);
_log.error("TrackerClient: " + t, t);
if (t instanceof OutOfMemoryError)
throw (OutOfMemoryError)t;
}
@@ -620,7 +629,8 @@ public class TrackerClient implements Runnable {
else
buf.append(_util.getMaxConnections());
String s = buf.toString();
_util.debug("Sending TrackerClient request: " + s, Snark.INFO);
if (_log.shouldLog(Log.INFO))
_log.info("Sending TrackerClient request: " + s);
tr.lastRequestTime = System.currentTimeMillis();
// Don't wait for a response to stopped when shutting down
@@ -636,7 +646,8 @@ public class TrackerClient implements Runnable {
TrackerInfo info = new TrackerInfo(in, snark.getID(),
snark.getInfoHash(), snark.getMetaInfo());
_util.debug("TrackerClient response: " + info, Snark.INFO);
if (_log.shouldLog(Log.INFO))
_log.info("TrackerClient response: " + info);
String failure = info.getFailureReason();
if (failure != null)