forked from I2P_Developers/i2p.i2p
* i2psnark: Ensure current stats and correct event delivered in announce
This commit is contained in:
@ -439,31 +439,37 @@ public class TrackerClient implements Runnable {
|
|||||||
* @return max peers seen
|
* @return max peers seen
|
||||||
*/
|
*/
|
||||||
private int getPeersFromTrackers(List<TCTracker> trckrs) {
|
private int getPeersFromTrackers(List<TCTracker> trckrs) {
|
||||||
long uploaded = coordinator.getUploaded();
|
|
||||||
long downloaded = coordinator.getDownloaded();
|
|
||||||
long left = coordinator.getLeft(); // -1 in magnet mode
|
long left = coordinator.getLeft(); // -1 in magnet mode
|
||||||
|
|
||||||
// First time we got a complete download?
|
// First time we got a complete download?
|
||||||
String event;
|
boolean newlyCompleted;
|
||||||
if (!completed && left == 0)
|
if (!completed && left == 0) {
|
||||||
{
|
|
||||||
completed = true;
|
completed = true;
|
||||||
event = COMPLETED_EVENT;
|
newlyCompleted = true;
|
||||||
|
} else {
|
||||||
|
newlyCompleted = false;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
event = NO_EVENT;
|
|
||||||
|
|
||||||
// *** loop once for each tracker
|
// *** loop once for each tracker
|
||||||
int maxSeenPeers = 0;
|
int maxSeenPeers = 0;
|
||||||
for (TCTracker tr : trckrs) {
|
for (TCTracker tr : trckrs) {
|
||||||
if ((!stop) && (!tr.stop) &&
|
if ((!stop) && (!tr.stop) &&
|
||||||
(completed || coordinator.needOutboundPeers() || !tr.started) &&
|
(completed || coordinator.needOutboundPeers() || !tr.started) &&
|
||||||
(event.equals(COMPLETED_EVENT) || System.currentTimeMillis() > tr.lastRequestTime + tr.interval))
|
(newlyCompleted || System.currentTimeMillis() > tr.lastRequestTime + tr.interval))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!tr.started)
|
long uploaded = coordinator.getUploaded();
|
||||||
|
long downloaded = coordinator.getDownloaded();
|
||||||
|
left = coordinator.getLeft();
|
||||||
|
String event;
|
||||||
|
if (!tr.started) {
|
||||||
event = STARTED_EVENT;
|
event = STARTED_EVENT;
|
||||||
|
} else if (newlyCompleted) {
|
||||||
|
event = COMPLETED_EVENT;
|
||||||
|
} else {
|
||||||
|
event = NO_EVENT;
|
||||||
|
}
|
||||||
TrackerInfo info = doRequest(tr, infoHash, peerID,
|
TrackerInfo info = doRequest(tr, infoHash, peerID,
|
||||||
uploaded, downloaded, left,
|
uploaded, downloaded, left,
|
||||||
event);
|
event);
|
||||||
|
Reference in New Issue
Block a user