Class TRTrackerBTAnnouncerImpl
java.lang.Object
com.biglybt.core.tracker.client.impl.bt.TRTrackerBTAnnouncerImpl
- All Implemented Interfaces:
TRTrackerAnnouncerHelper, TRTrackerAnnouncer
This class handles communication with the tracker
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final AllTrackersManager.AllTrackersprivate TRTrackerAnnouncerDataProviderprivate final TOTorrentAnnounceURLSet[]private intprivate intprivate byteprivate intprivate booleanprivate static final AEMonitorprivate booleanprivate booleanprivate longprivate TimerEventprivate byte[]private booleanprivate booleanprivate final intprivate booleanprivate intprivate longprivate TRTrackerAnnouncerImpl.Helperprivate Stringprivate booleanprivate Stringprivate TRTrackerAnnouncerResponseImplprivate Stringprivate longprivate URLprivate URLstatic final LogIDsprivate final booleanprivate longprivate longprivate static final intprivate final String[]private longprivate intprivate booleanprivate booleanprivate static booleanprotected final AEMonitorprivate TimerEventPerformerprivate final TOTorrentprivate final HashWrapperprivate final HashWrapperprivate Stringprivate longprivate longprivate byte[]private Stringprivate static final Mapprotected intprivate Stringprivate final Timerprivate static final Timerprivate static final Timerstatic final Stringprivate static booleanprivate static booleanprivate booleanprivate static intprivate static intprivate InetSocketAddressFields inherited from interface TRTrackerAnnouncer
AZ_TRACKER_VERSION_1, AZ_TRACKER_VERSION_2, AZ_TRACKER_VERSION_3, AZ_TRACKER_VERSION_CURRENT, DEFAULT_PEERS_TO_CACHE, REFRESH_MINIMUM_SECS, TS_COMPLETED, TS_DOWNLOADING, TS_INITIALISED, TS_STOPPED -
Constructor Summary
ConstructorsConstructorDescriptionTRTrackerBTAnnouncerImpl(HashWrapper _torrent_hash_override, TOTorrent _torrent, TOTorrentAnnounceURLSet[] _announce_urls, String[] _peer_networks, boolean _manual, TRTrackerAnnouncerImpl.Helper _helper) -
Method Summary
Modifier and TypeMethodDescriptionvoid(package private) static void(package private) static voidanalyseTimerEvents(Timer timer) private StringannounceHTTP(URL[] tracker_url, URL original_reqUrl, ByteArrayOutputStream message, boolean first_effort) private StringannounceHTTPSupport(URL[] tracker_url, URL original_reqUrl, Proxy proxy, boolean first_effort, ByteArrayOutputStream message) protected StringannounceUDP(URL original_reqUrl, ByteArrayOutputStream message, boolean is_probe) protected intvoidvoidvoidvoidcomplete(boolean already_reported) protected TRTrackerAnnouncerResponseImplcompleteSupport(TimerEvent timer_event) private TRTrackerAnnouncerRequestImplconstructRequest(String evt, URL _url, TimerEvent timer_event) private voidconstructTrackerUrlLists(boolean shuffle) protected TRTrackerAnnouncerResponseImpldecodeTrackerResponse(URL url, byte[] data) voiddestroy()protected Stringprotected StringvoidgenerateEvidence(IndentWriter writer) protected longprotected intRetrieve the retry interval to use on announce errors.longintLast Update Time in secondsprivate Longprotected longgetLongURLParam(String url, String param) longbyte[]intintGets a delegate tracker peer source for reporting againstreturns a Map containing "bencoded" entries representing a cache of tracker responses.protected StringgetURLParam(String url, String param) protected voidinformURLChange(URL old_url, URL new_url, boolean explicit) protected voidbooleanisManual()booleanvoidThis method forces all listeners to get an explicit "urlChanged" event to get them to re-examine the trackervoidremoveFromTrackerResponseCache(String ip, int tcpPort) remove a specific entry from the cache if presentvoidprotected voidprotected longrequestUpdateSupport(TimerEvent timer_event) voidresetTrackerUrl(boolean shuffle) voidvoidvoidsetIPOverride(String override) voidsetRefreshDelayOverrides(int percentage) voidsets the response cache.voidsetTrackerURL(URL new_url) protected TRTrackerAnnouncerResponseImplstartSupport(TimerEvent timer_event) voidstop(boolean for_queue) protected TRTrackerAnnouncerResponseImplstopSupport(TimerEvent timer_event) protected Stringvoidupdate(boolean force) private TRTrackerAnnouncerResponseImplupdate(String evt, TimerEvent timer_event) private TRTrackerAnnouncerResponseImplupdate2(String evt, TimerEvent timer_event) private TRTrackerAnnouncerResponseImplupdate2Support(String evt, TimerEvent event) private byte[]protected TRTrackerAnnouncerResponseImplupdateSupport(TimerEvent timer_event)
-
Field Details
-
LOGID
-
OVERRIDE_PERIOD
private static final int OVERRIDE_PERIOD- See Also:
-
tracker_timer_public
-
tracker_timer_private
-
all_trackers
-
UDP_REALM
- See Also:
-
userMinInterval
private static int userMinInterval -
userMaxNumwant
private static int userMaxNumwant -
tcpAnnounceEnabled
private static boolean tcpAnnounceEnabled -
udpAnnounceEnabled
private static boolean udpAnnounceEnabled -
udpProbeEnabled
private static boolean udpProbeEnabled -
class_mon
-
tracker_report_map
-
tracker_timer
-
torrent
-
announce_urls
-
helper
-
current_timer_event
-
timer_event_action
-
tracker_state
protected int tracker_state -
tracker_status_str
-
last_response
-
last_update_time_secs
private long last_update_time_secs -
current_time_to_wait_secs
private long current_time_to_wait_secs -
manual_control
private final boolean manual_control -
dispersal_random
private final int dispersal_random -
tracker_interval
private long tracker_interval -
tracker_min_interval
private long tracker_min_interval -
min_interval
private long min_interval -
failure_added_time
private int failure_added_time -
failure_time_last_updated
private long failure_time_last_updated -
stopped
private boolean stopped -
stopped_for_queue
private boolean stopped_for_queue -
completed
private boolean completed -
complete_reported
private boolean complete_reported -
update_in_progress
private boolean update_in_progress -
rd_last_override
private long rd_last_override -
rd_override_percentage
private int rd_override_percentage -
min_interval_override
private long min_interval_override -
trackerUrlLists
-
lastUsedUrl
-
lastAZTrackerCheckedURL
-
torrent_hash_actual
-
torrent_hash_target
-
last_tracker_message
-
info_hash
-
tracker_peer_id
private byte[] tracker_peer_id -
tracker_peer_id_str
-
data_peer_id
private byte[] data_peer_id -
announceCount
private int announceCount -
announceFailCount
private int announceFailCount -
autoUDPprobeEvery
private byte autoUDPprobeEvery -
autoUDPProbeSuccessCount
private int autoUDPProbeSuccessCount -
working_udp_ia
-
tracker_id
-
ip_override
-
peer_networks
-
announce_data_provider
-
this_mon
-
az_tracker
private boolean az_tracker -
enable_sni_hack
private boolean enable_sni_hack -
internal_error_hack
private boolean internal_error_hack -
dh_hack
private boolean dh_hack -
destroyed
private boolean destroyed
-
-
Constructor Details
-
TRTrackerBTAnnouncerImpl
public TRTrackerBTAnnouncerImpl(HashWrapper _torrent_hash_override, TOTorrent _torrent, TOTorrentAnnounceURLSet[] _announce_urls, String[] _peer_networks, boolean _manual, TRTrackerAnnouncerImpl.Helper _helper) throws TRTrackerAnnouncerException - Throws:
TRTrackerAnnouncerException
-
-
Method Details
-
analyseTimerEvents
static void analyseTimerEvents() -
analyseTimerEvents
-
cloneFrom
-
getAdjustedSecsToWait
protected long getAdjustedSecsToWait() -
getStatus
public int getStatus()- Specified by:
getStatusin interfaceTRTrackerAnnouncer
-
getStatusString
- Specified by:
getStatusStringin interfaceTRTrackerAnnouncer
-
getBestAnnouncer
- Specified by:
getBestAnnouncerin interfaceTRTrackerAnnouncer
-
setRefreshDelayOverrides
public void setRefreshDelayOverrides(int percentage) - Specified by:
setRefreshDelayOverridesin interfaceTRTrackerAnnouncer
-
isUpdating
public boolean isUpdating()- Specified by:
isUpdatingin interfaceTRTrackerAnnouncerHelper
-
getInterval
public long getInterval()- Specified by:
getIntervalin interfaceTRTrackerAnnouncerHelper
-
getMinInterval
public long getMinInterval()- Specified by:
getMinIntervalin interfaceTRTrackerAnnouncerHelper
-
getTimeUntilNextUpdate
public int getTimeUntilNextUpdate()- Specified by:
getTimeUntilNextUpdatein interfaceTRTrackerAnnouncer- Specified by:
getTimeUntilNextUpdatein interfaceTRTrackerAnnouncerHelper
-
getLastUpdateTime
public int getLastUpdateTime()Description copied from interface:TRTrackerAnnouncerLast Update Time in seconds- Specified by:
getLastUpdateTimein interfaceTRTrackerAnnouncer
-
update
public void update(boolean force) - Specified by:
updatein interfaceTRTrackerAnnouncer
-
complete
public void complete(boolean already_reported) - Specified by:
completein interfaceTRTrackerAnnouncer
-
stop
public void stop(boolean for_queue) - Specified by:
stopin interfaceTRTrackerAnnouncer
-
requestUpdate
protected void requestUpdate() -
requestUpdateSupport
-
startSupport
-
completeSupport
-
stopSupport
-
updateSupport
-
update
-
update2
-
update2Support
-
updateOld
-
announceHTTP
-
announceHTTPSupport
private String announceHTTPSupport(URL[] tracker_url, URL original_reqUrl, Proxy proxy, boolean first_effort, ByteArrayOutputStream message) throws IOException - Throws:
IOException
-
announceUDP
-
getLongURLParam
-
getURLParam
-
exceptionToString
-
exceptionToString
-
constructRequest
private TRTrackerAnnouncerRequestImpl constructRequest(String evt, URL _url, TimerEvent timer_event) throws Exception - Throws:
Exception
-
calculateNumWant
protected int calculateNumWant() -
getPeerId
public byte[] getPeerId()- Specified by:
getPeerIdin interfaceTRTrackerAnnouncer
-
setAnnounceDataProvider
- Specified by:
setAnnounceDataProviderin interfaceTRTrackerAnnouncer
-
getTorrent
- Specified by:
getTorrentin interfaceTRTrackerAnnouncer
-
getTrackerURL
- Specified by:
getTrackerURLin interfaceTRTrackerAnnouncer
-
setTrackerURL
- Specified by:
setTrackerURLin interfaceTRTrackerAnnouncer
-
getAnnounceSets
- Specified by:
getAnnounceSetsin interfaceTRTrackerAnnouncerHelper
-
resetTrackerUrl
public void resetTrackerUrl(boolean shuffle) - Specified by:
resetTrackerUrlin interfaceTRTrackerAnnouncer
-
refreshListeners
public void refreshListeners()Description copied from interface:TRTrackerAnnouncerThis method forces all listeners to get an explicit "urlChanged" event to get them to re-examine the tracker- Specified by:
refreshListenersin interfaceTRTrackerAnnouncer
-
setIPOverride
- Specified by:
setIPOverridein interfaceTRTrackerAnnouncer
-
clearIPOverride
public void clearIPOverride()- Specified by:
clearIPOverridein interfaceTRTrackerAnnouncer
-
constructTrackerUrlLists
private void constructTrackerUrlLists(boolean shuffle) -
trackerURLListToString
-
decodeTrackerResponse
-
getLong
-
informURLChange
-
informURLRefresh
protected void informURLRefresh() -
getLastResponse
- Specified by:
getLastResponsein interfaceTRTrackerAnnouncer
-
isManual
public boolean isManual()- Specified by:
isManualin interfaceTRTrackerAnnouncer
-
destroy
public void destroy()- Specified by:
destroyin interfaceTRTrackerAnnouncer
-
getErrorRetryInterval
protected int getErrorRetryInterval()Retrieve the retry interval to use on announce errors. -
setAnnounceResult
- Specified by:
setAnnounceResultin interfaceTRTrackerAnnouncer
-
addListener
- Specified by:
addListenerin interfaceTRTrackerAnnouncer
-
removeListener
- Specified by:
removeListenerin interfaceTRTrackerAnnouncer
-
setTrackerResponseCache
Description copied from interface:TRTrackerAnnouncersets the response cache. This may be used by the tracker client to return peer details when the tracker is offline- Specified by:
setTrackerResponseCachein interfaceTRTrackerAnnouncer- Parameters:
map-
-
removeFromTrackerResponseCache
Description copied from interface:TRTrackerAnnouncerremove a specific entry from the cache if present- Specified by:
removeFromTrackerResponseCachein interfaceTRTrackerAnnouncer- Parameters:
ip-tcpPort-
-
getTrackerResponseCache
Description copied from interface:TRTrackerAnnouncerreturns a Map containing "bencoded" entries representing a cache of tracker responses.- Specified by:
getTrackerResponseCachein interfaceTRTrackerAnnouncer- Returns:
-
clearTrackerResponseCache
public void clearTrackerResponseCache()- Specified by:
clearTrackerResponseCachein interfaceTRTrackerAnnouncer
-
getTrackerPeerSource
Description copied from interface:TRTrackerAnnouncerGets a delegate tracker peer source for reporting against- Specified by:
getTrackerPeerSourcein interfaceTRTrackerAnnouncer- Parameters:
set-- Returns:
-
getCacheTrackerPeerSource
- Specified by:
getCacheTrackerPeerSourcein interfaceTRTrackerAnnouncer
-
generateEvidence
- Specified by:
generateEvidencein interfaceTRTrackerAnnouncer
-