Class TrackerStatus
- java.lang.Object
-
- com.biglybt.core.tracker.client.impl.bt.TrackerStatus
-
public class TrackerStatus extends java.lang.Object
One TrackerStatus object handles scrape functionality for all torrents on one tracker.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
TrackerStatus.ScrapeTask
-
Field Summary
Fields Modifier and Type Field Description private static AllTrackersManager.AllTrackers
all_trackers
private byte
autoUDPscrapeEvery
private boolean
az_tracker
private boolean
bSingleHashScrapes
private TrackerChecker
checker
private boolean
dh_hack
private boolean
enable_sni_hack
private static int
FAULTY_SCRAPE_RETRY_INTERVAL
private static int
GROUP_SCRAPES_LIMIT
private static int
GROUP_SCRAPES_MS
When scraping a single hash, also scrape other hashes that are going to be scraped within this range.private java.util.HashMap<HashWrapper,TRTrackerScraperResponseImpl>
hashes
key = Torrent hash.protected AEMonitor
hashes_mon
private boolean
internal_error_hack
private static java.util.List
logged_invalid_urls
private static LogIDs
LOGID
private static int
NOHASH_RETRY_INTERVAL
private java.util.concurrent.atomic.AtomicInteger
numActiveScrapes
private int
scrapeCount
private TRTrackerScraperImpl
scraper
only needed to notify listenersprivate java.lang.String
scrapeURL
private static java.lang.String
SS
private static java.lang.String
SSErr
private static boolean
tcpScrapeEnabled
private static ThreadPool
thread_pool
private java.net.URL
tracker_url
private static boolean
udpProbeEnabled
private static boolean
udpScrapeEnabled
-
Constructor Summary
Constructors Constructor Description TrackerStatus(TrackerChecker _checker, TRTrackerScraperImpl _scraper, java.net.URL _tracker_url)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected TRTrackerScraperResponseImpl
addHash(HashWrapper hash)
protected TRTrackerScraperResponseImpl
getHashData(HashWrapper hash)
protected java.util.Map
getHashes()
protected AEMonitor
getHashesMonitor()
int
getNumActiveScrapes()
protected java.lang.String
getString()
boolean
getSupportsMultipeHashScrapes()
protected java.net.URL
getTrackerURL()
protected java.lang.String
getURLParam(java.lang.String url, java.lang.String param)
protected boolean
isTrackerScrapeUrlValid()
protected void
removeHash(HashWrapper hash)
protected void
runScrapes(java.util.ArrayList<TRTrackerScraperResponseImpl> responses, boolean force, boolean async)
protected void
runScrapesSupport(java.util.ArrayList<TRTrackerScraperResponseImpl> allResponses, boolean force)
private java.net.URL
scrapeHTTP(java.util.List<HashWrapper> hashesInQuery, java.net.URL reqUrl, java.io.ByteArrayOutputStream message)
private java.net.URL
scrapeHTTPSupport(java.net.URL reqUrl, byte[] example_hash, java.net.Proxy proxy, java.io.ByteArrayOutputStream message)
protected void
scrapeReceived(TRTrackerScraperResponse response)
protected boolean
scrapeUDP(java.net.URL reqUrl, java.io.ByteArrayOutputStream message, java.util.List hashes, boolean do_auth_test)
private void
setAllError(java.util.List<TRTrackerScraperResponseImpl> responses, java.lang.Exception e)
protected void
updateSingleHash(HashWrapper hash, boolean force)
protected void
updateSingleHash(HashWrapper hash, boolean force, boolean async)
-
-
-
Field Detail
-
LOGID
private static final LogIDs LOGID
-
SS
private static final java.lang.String SS
- See Also:
- Constant Field Values
-
SSErr
private static final java.lang.String SSErr
- See Also:
- Constant Field Values
-
FAULTY_SCRAPE_RETRY_INTERVAL
private static final int FAULTY_SCRAPE_RETRY_INTERVAL
- See Also:
- Constant Field Values
-
NOHASH_RETRY_INTERVAL
private static final int NOHASH_RETRY_INTERVAL
- See Also:
- Constant Field Values
-
GROUP_SCRAPES_MS
private static final int GROUP_SCRAPES_MS
When scraping a single hash, also scrape other hashes that are going to be scraped within this range.- See Also:
- Constant Field Values
-
GROUP_SCRAPES_LIMIT
private static final int GROUP_SCRAPES_LIMIT
- See Also:
- Constant Field Values
-
tcpScrapeEnabled
private static boolean tcpScrapeEnabled
-
udpScrapeEnabled
private static boolean udpScrapeEnabled
-
udpProbeEnabled
private static boolean udpProbeEnabled
-
all_trackers
private static final AllTrackersManager.AllTrackers all_trackers
-
autoUDPscrapeEvery
private byte autoUDPscrapeEvery
-
scrapeCount
private int scrapeCount
-
logged_invalid_urls
private static final java.util.List logged_invalid_urls
-
thread_pool
private static final ThreadPool thread_pool
-
tracker_url
private final java.net.URL tracker_url
-
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
-
scrapeURL
private java.lang.String scrapeURL
-
hashes
private final java.util.HashMap<HashWrapper,TRTrackerScraperResponseImpl> hashes
key = Torrent hash. values = TRTrackerScraperResponseImpl
-
scraper
private final TRTrackerScraperImpl scraper
only needed to notify listeners
-
bSingleHashScrapes
private boolean bSingleHashScrapes
-
hashes_mon
protected final AEMonitor hashes_mon
-
checker
private final TrackerChecker checker
-
numActiveScrapes
private final java.util.concurrent.atomic.AtomicInteger numActiveScrapes
-
-
Constructor Detail
-
TrackerStatus
public TrackerStatus(TrackerChecker _checker, TRTrackerScraperImpl _scraper, java.net.URL _tracker_url)
-
-
Method Detail
-
isTrackerScrapeUrlValid
protected boolean isTrackerScrapeUrlValid()
-
getHashData
protected TRTrackerScraperResponseImpl getHashData(HashWrapper hash)
-
updateSingleHash
protected void updateSingleHash(HashWrapper hash, boolean force)
-
updateSingleHash
protected void updateSingleHash(HashWrapper hash, boolean force, boolean async)
-
runScrapes
protected void runScrapes(java.util.ArrayList<TRTrackerScraperResponseImpl> responses, boolean force, boolean async)
-
runScrapesSupport
protected void runScrapesSupport(java.util.ArrayList<TRTrackerScraperResponseImpl> allResponses, boolean force)
-
setAllError
private void setAllError(java.util.List<TRTrackerScraperResponseImpl> responses, java.lang.Exception e)
- Parameters:
e
-
-
scrapeHTTP
private java.net.URL scrapeHTTP(java.util.List<HashWrapper> hashesInQuery, java.net.URL reqUrl, java.io.ByteArrayOutputStream message) throws java.lang.Exception
- Throws:
java.lang.Exception
-
scrapeHTTPSupport
private java.net.URL scrapeHTTPSupport(java.net.URL reqUrl, byte[] example_hash, java.net.Proxy proxy, java.io.ByteArrayOutputStream message) throws java.io.IOException
- Throws:
java.io.IOException
-
scrapeUDP
protected boolean scrapeUDP(java.net.URL reqUrl, java.io.ByteArrayOutputStream message, java.util.List hashes, boolean do_auth_test) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getURLParam
protected java.lang.String getURLParam(java.lang.String url, java.lang.String param)
-
addHash
protected TRTrackerScraperResponseImpl addHash(HashWrapper hash)
-
removeHash
protected void removeHash(HashWrapper hash)
-
getTrackerURL
protected java.net.URL getTrackerURL()
-
getHashes
protected java.util.Map getHashes()
-
getHashesMonitor
protected AEMonitor getHashesMonitor()
-
scrapeReceived
protected void scrapeReceived(TRTrackerScraperResponse response)
-
getSupportsMultipeHashScrapes
public boolean getSupportsMultipeHashScrapes()
-
getString
protected java.lang.String getString()
-
getNumActiveScrapes
public int getNumActiveScrapes()
-
-