Methods Summary |
---|
protected void | checkCache()
if ( last_response.getStatus() != TRTrackerAnnouncerResponse.ST_ONLINE ){
TRTrackerAnnouncerResponsePeer[] cached_peers = getPeersFromCache(100);
if ( cached_peers.length > 0 ){
last_response.setPeers( cached_peers );
listeners.dispatch( LDT_TRACKER_RESPONSE, last_response );
}
}
|
public void | clearIPOverride()
|
public void | cloneFrom(org.gudy.azureus2.core3.tracker.client.TRTrackerAnnouncer other)
data_peer_id = other.getPeerId();
|
public void | complete(boolean already_reported)
state = TS_COMPLETED;
|
public void | destroy()
|
public void | generateEvidence(org.gudy.azureus2.core3.util.IndentWriter writer)
writer.println( "DHT announce: " + (last_response==null?"null":last_response.getString()));
|
public org.gudy.azureus2.core3.tracker.client.TRTrackerAnnouncerResponse | getLastResponse()
return( last_response );
|
public int | getLastUpdateTime()
return( (int)(last_update_time/1000));
|
public byte[] | getPeerId()
return( data_peer_id );
|
public int | getPort()
return(0);
|
public int | getStatus()
return( state );
|
public java.lang.String | getStatusString()
return( tracker_status_str );
|
public int | getTimeUntilNextUpdate()
long elapsed = (SystemTime.getCurrentTime() - last_update_time)/1000;
return( (int)(last_response.getTimeToWait()-elapsed));
|
public org.gudy.azureus2.core3.torrent.TOTorrent | getTorrent()
return( torrent );
|
public java.net.URL | getTrackerUrl()
return( torrent.getAnnounceURL());
|
public boolean | isManual()
return( manual );
|
public void | refreshListeners()
|
public void | resetTrackerUrl(boolean shuffle)
|
public void | setAnnounceDataProvider(org.gudy.azureus2.core3.tracker.client.TRTrackerAnnouncerDataProvider provider)
|
public void | setAnnounceResult(org.gudy.azureus2.plugins.download.DownloadAnnounceResult result)
last_update_time = SystemTime.getCurrentTime();
TRTrackerAnnouncerResponseImpl response;
if ( result.getResponseType() == DownloadAnnounceResult.RT_ERROR ){
tracker_status_str = MessageText.getString("PeerManager.status.error");
String reason = result.getError();
if ( reason != null ){
tracker_status_str += " (" + reason + ")";
}
response = new TRTrackerAnnouncerResponseImpl(
result.getURL(),
torrent_hash,
TRTrackerAnnouncerResponse.ST_OFFLINE,
result.getTimeToWait(),
reason );
}else{
DownloadAnnounceResultPeer[] ext_peers = result.getPeers();
TRTrackerAnnouncerResponsePeerImpl[] peers = new TRTrackerAnnouncerResponsePeerImpl[ext_peers.length];
for (int i=0;i<ext_peers.length;i++){
DownloadAnnounceResultPeer ext_peer = ext_peers[i];
if (Logger.isEnabled())
Logger.log(new LogEvent(torrent, LOGID, "EXTERNAL PEER DHT: ip="
+ ext_peer.getAddress() + ",port=" + ext_peer.getPort() +",prot=" + ext_peer.getProtocol()));
int http_port = 0;
byte az_version = TRTrackerAnnouncer.AZ_TRACKER_VERSION_1;
peers[i] = new TRTrackerAnnouncerResponsePeerImpl(
ext_peer.getSource(),
ext_peer.getPeerID(),
ext_peer.getAddress(),
ext_peer.getPort(),
ext_peer.getUDPPort(),
http_port,
ext_peer.getProtocol(),
az_version,
(short)0 );
}
addToTrackerCache( peers);
tracker_status_str = MessageText.getString("PeerManager.status.ok");
response = new TRTrackerAnnouncerResponseImpl( result.getURL(), torrent_hash, TRTrackerAnnouncerResponse.ST_ONLINE, result.getTimeToWait(), peers );
}
last_response = response;
listeners.dispatch( LDT_TRACKER_RESPONSE, response );
|
public void | setIPOverride(java.lang.String override)
|
public void | setRefreshDelayOverrides(int percentage)
|
public void | setTrackerUrl(java.net.URL url)
Debug.out( "setTrackerURL not supported for DHT" );
|
public void | stop(boolean for_queue)
state = TS_STOPPED;
|
public void | update(boolean force)
state = TS_DOWNLOADING;
checkCache();
|