Class TRTrackerServerTorrentImpl
- java.lang.Object
-
- com.biglybt.core.tracker.server.impl.TRTrackerServerTorrentImpl
-
- All Implemented Interfaces:
TRTrackerServerTorrent
public class TRTrackerServerTorrentImpl extends java.lang.Object implements TRTrackerServerTorrent
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
TRTrackerServerTorrentImpl.announceCacheEntry
protected static class
TRTrackerServerTorrentImpl.lightweightSeed
protected static class
TRTrackerServerTorrentImpl.QueuedPeer
private static class
TRTrackerServerTorrentImpl.temporaryBiasedSeed
-
Field Summary
-
Constructor Summary
Constructors Constructor Description TRTrackerServerTorrentImpl(TRTrackerServerImpl _server, HashWrapper _hash, boolean _enabled)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addExplicitBiasedPeer(java.lang.String ip, int port)
TRTrackerServerTorrent
addLink(java.lang.String link)
void
addListener(TRTrackerServerTorrentListener l)
void
addPeerListener(TRTrackerServerTorrentPeerListener l)
protected void
checkForPeerListCompaction(boolean force)
protected void
checkTimeouts()
protected void
delete()
void
disableCaching()
java.util.Map
exportAnnounceToMap(java.lang.String ip_address, java.util.HashMap preprocess_map, TRTrackerServerPeerImpl requesting_peer, boolean include_seeds, int num_want, long interval, long min_interval, boolean no_peer_id, byte compact_mode, byte crypto_level, DHTNetworkPosition network_position)
private void
exportPeer(java.util.LinkedList rep_peers, TRTrackerServerSimplePeer peer, boolean send_peer_ids, byte compact_mode, byte crypto_level, DHTNetworkPosition network_position)
java.util.Map
exportScrapeToMap(java.lang.String url_parameters, java.lang.String ip_address, boolean allow_cache)
int
getBadNATPeerCount()
HashWrapper
getHash()
protected int
getLeecherCount()
protected int
getPeerCount()
TRTrackerServerPeer[]
getPeers()
protected int
getQueuedCount()
TRTrackerServerPeerBase[]
getQueuedPeers()
java.net.URL[]
getRedirects()
protected int
getSeedCount()
protected int
getSeedCountForScrape(boolean requester_is_biased)
TRTrackerServerTorrentStats
getStats()
java.lang.String
getString()
protected void
handleRedirects(java.lang.String url_parameters, java.lang.String real_ip_address, boolean scrape)
void
importPeers(java.util.List peers)
boolean
isCachingEnabled()
boolean
isEnabled()
TRTrackerServerPeerImpl
peerContact(java.lang.String url_parameters, java.lang.String event, HashWrapper peer_id, int tcp_port, int udp_port, int http_port, byte crypto_level, byte az_ver, java.lang.String original_address, java.lang.String ip_address, boolean ip_override, boolean loopback, java.lang.String tracker_key, long uploaded, long downloaded, long left, long interval_requested, int up_speed, DHTNetworkPosition network_position)
protected void
peerEvent(TRTrackerServerPeer peer, int event, java.lang.String url_parameters)
void
peerQueued(java.lang.String ip, int tcp_port, int udp_port, int http_port, byte crypto_level, byte az_ver, long timeout_secs, boolean seed)
void
remove(TRTrackerServerPeerBase peer)
void
removeLink(java.lang.String link)
void
removeListener(TRTrackerServerTorrentListener l)
protected void
removePeer(TRTrackerServerPeerImpl peer, int peer_list_index, int reason, java.lang.String url_parameters)
protected void
removePeer(TRTrackerServerPeerImpl peer, int reason, java.lang.String url_parameters)
void
removePeerListener(TRTrackerServerTorrentPeerListener l)
void
setEnabled(boolean _enabled)
void
setMinBiasedPeers(int num)
void
setRedirects(java.net.URL[] urls)
protected void
updateBiasedPeers(java.util.Set biased_peers_set)
protected void
updateXferStats(int bytes_in, int bytes_out)
-
-
-
Field Detail
-
LOGID
private static final LogIDs LOGID
-
MIN_CACHE_ENTRY_SIZE
public static final int MIN_CACHE_ENTRY_SIZE
- See Also:
- Constant Field Values
-
MAX_UPLOAD_BYTES_PER_SEC
public static final int MAX_UPLOAD_BYTES_PER_SEC
- See Also:
- Constant Field Values
-
MAX_DOWNLOAD_BYTES_PER_SEC
public static final int MAX_DOWNLOAD_BYTES_PER_SEC
- See Also:
- Constant Field Values
-
USE_LIGHTWEIGHT_SEEDS
public static final boolean USE_LIGHTWEIGHT_SEEDS
- See Also:
- Constant Field Values
-
MAX_IP_OVERRIDE_PEERS
public static final int MAX_IP_OVERRIDE_PEERS
- See Also:
- Constant Field Values
-
COMPACT_MODE_NONE
public static final byte COMPACT_MODE_NONE
- See Also:
- Constant Field Values
-
COMPACT_MODE_NORMAL
public static final byte COMPACT_MODE_NORMAL
- See Also:
- Constant Field Values
-
COMPACT_MODE_AZ
public static final byte COMPACT_MODE_AZ
- See Also:
- Constant Field Values
-
COMPACT_MODE_AZ_2
public static final byte COMPACT_MODE_AZ_2
- See Also:
- Constant Field Values
-
COMPACT_MODE_XML
public static final byte COMPACT_MODE_XML
- See Also:
- Constant Field Values
-
QUEUED_PEERS_MAX_SWARM_SIZE
private static final int QUEUED_PEERS_MAX_SWARM_SIZE
- See Also:
- Constant Field Values
-
QUEUED_PEERS_MAX
private static final int QUEUED_PEERS_MAX
- See Also:
- Constant Field Values
-
QUEUED_PEERS_ADD_MAX
private static final int QUEUED_PEERS_ADD_MAX
- See Also:
- Constant Field Values
-
server
private final TRTrackerServerImpl server
-
hash
private final HashWrapper hash
-
peer_map
private java.util.Map<HashWrapper,TRTrackerServerPeerImpl> peer_map
-
peer_reuse_map
private java.util.Map<java.lang.String,TRTrackerServerPeerImpl> peer_reuse_map
-
peer_list
private java.util.List<TRTrackerServerPeerImpl> peer_list
-
peer_list_hole_count
private int peer_list_hole_count
-
peer_list_compaction_suspended
private boolean peer_list_compaction_suspended
-
biased_peers
private java.util.List biased_peers
-
min_biased_peers
private int min_biased_peers
-
lightweight_seed_map
private final java.util.Map lightweight_seed_map
-
seed_count
private int seed_count
-
removed_count
private int removed_count
-
ip_override_count
private int ip_override_count
-
bad_NAT_count
private int bad_NAT_count
-
random
private final java.util.Random random
-
last_scrape_calc_time
private long last_scrape_calc_time
-
last_scrape
private java.util.Map last_scrape
-
announce_cache
private final java.util.LinkedHashMap announce_cache
-
stats
private final TRTrackerServerTorrentStatsImpl stats
-
listeners
private final java.util.List listeners
-
peer_listeners
private java.util.List peer_listeners
-
deleted
private boolean deleted
-
enabled
private boolean enabled
-
map_size_diff_reported
private boolean map_size_diff_reported
-
ip_override_limit_exceeded_reported
private boolean ip_override_limit_exceeded_reported
-
duplicate_peer_checker_index
private byte duplicate_peer_checker_index
-
duplicate_peer_checker
private byte[] duplicate_peer_checker
-
redirects
private java.net.URL[] redirects
-
caching_enabled
private boolean caching_enabled
-
queued_peers
private java.util.LinkedList queued_peers
-
this_mon
protected final AEMonitor this_mon
-
explicit_manual_biased_peers
private java.util.List explicit_manual_biased_peers
-
explicit_next_peer
private int explicit_next_peer
-
-
Constructor Detail
-
TRTrackerServerTorrentImpl
public TRTrackerServerTorrentImpl(TRTrackerServerImpl _server, HashWrapper _hash, boolean _enabled)
-
-
Method Detail
-
setEnabled
public void setEnabled(boolean _enabled)
- Specified by:
setEnabled
in interfaceTRTrackerServerTorrent
-
isEnabled
public boolean isEnabled()
- Specified by:
isEnabled
in interfaceTRTrackerServerTorrent
-
setMinBiasedPeers
public void setMinBiasedPeers(int num)
- Specified by:
setMinBiasedPeers
in interfaceTRTrackerServerTorrent
-
importPeers
public void importPeers(java.util.List peers)
- Specified by:
importPeers
in interfaceTRTrackerServerTorrent
-
peerContact
public TRTrackerServerPeerImpl peerContact(java.lang.String url_parameters, java.lang.String event, HashWrapper peer_id, int tcp_port, int udp_port, int http_port, byte crypto_level, byte az_ver, java.lang.String original_address, java.lang.String ip_address, boolean ip_override, boolean loopback, java.lang.String tracker_key, long uploaded, long downloaded, long left, long interval_requested, int up_speed, DHTNetworkPosition network_position) throws TRTrackerServerException
- Throws:
TRTrackerServerException
-
peerQueued
public void peerQueued(java.lang.String ip, int tcp_port, int udp_port, int http_port, byte crypto_level, byte az_ver, long timeout_secs, boolean seed)
-
remove
public void remove(TRTrackerServerPeerBase peer)
- Specified by:
remove
in interfaceTRTrackerServerTorrent
-
removePeer
protected void removePeer(TRTrackerServerPeerImpl peer, int reason, java.lang.String url_parameters)
-
removePeer
protected void removePeer(TRTrackerServerPeerImpl peer, int peer_list_index, int reason, java.lang.String url_parameters)
-
updateBiasedPeers
protected void updateBiasedPeers(java.util.Set biased_peers_set)
-
addLink
public TRTrackerServerTorrent addLink(java.lang.String link)
- Specified by:
addLink
in interfaceTRTrackerServerTorrent
-
removeLink
public void removeLink(java.lang.String link)
- Specified by:
removeLink
in interfaceTRTrackerServerTorrent
-
exportAnnounceToMap
public java.util.Map exportAnnounceToMap(java.lang.String ip_address, java.util.HashMap preprocess_map, TRTrackerServerPeerImpl requesting_peer, boolean include_seeds, int num_want, long interval, long min_interval, boolean no_peer_id, byte compact_mode, byte crypto_level, DHTNetworkPosition network_position)
-
exportPeer
private void exportPeer(java.util.LinkedList rep_peers, TRTrackerServerSimplePeer peer, boolean send_peer_ids, byte compact_mode, byte crypto_level, DHTNetworkPosition network_position)
-
exportScrapeToMap
public java.util.Map exportScrapeToMap(java.lang.String url_parameters, java.lang.String ip_address, boolean allow_cache) throws TRTrackerServerException
- Throws:
TRTrackerServerException
-
checkTimeouts
protected void checkTimeouts()
-
checkForPeerListCompaction
protected void checkForPeerListCompaction(boolean force)
-
updateXferStats
protected void updateXferStats(int bytes_in, int bytes_out)
-
getStats
public TRTrackerServerTorrentStats getStats()
- Specified by:
getStats
in interfaceTRTrackerServerTorrent
-
getPeerCount
protected int getPeerCount()
-
getSeedCount
protected int getSeedCount()
-
getSeedCountForScrape
protected int getSeedCountForScrape(boolean requester_is_biased)
-
getLeecherCount
protected int getLeecherCount()
-
getPeers
public TRTrackerServerPeer[] getPeers()
- Specified by:
getPeers
in interfaceTRTrackerServerTorrent
-
getQueuedCount
protected int getQueuedCount()
-
getQueuedPeers
public TRTrackerServerPeerBase[] getQueuedPeers()
- Specified by:
getQueuedPeers
in interfaceTRTrackerServerTorrent
-
getHash
public HashWrapper getHash()
- Specified by:
getHash
in interfaceTRTrackerServerTorrent
-
addExplicitBiasedPeer
public void addExplicitBiasedPeer(java.lang.String ip, int port)
- Specified by:
addExplicitBiasedPeer
in interfaceTRTrackerServerTorrent
-
setRedirects
public void setRedirects(java.net.URL[] urls)
- Specified by:
setRedirects
in interfaceTRTrackerServerTorrent
-
getRedirects
public java.net.URL[] getRedirects()
- Specified by:
getRedirects
in interfaceTRTrackerServerTorrent
-
handleRedirects
protected void handleRedirects(java.lang.String url_parameters, java.lang.String real_ip_address, boolean scrape) throws TRTrackerServerException
- Throws:
TRTrackerServerException
-
addListener
public void addListener(TRTrackerServerTorrentListener l)
- Specified by:
addListener
in interfaceTRTrackerServerTorrent
-
removeListener
public void removeListener(TRTrackerServerTorrentListener l)
- Specified by:
removeListener
in interfaceTRTrackerServerTorrent
-
peerEvent
protected void peerEvent(TRTrackerServerPeer peer, int event, java.lang.String url_parameters) throws TRTrackerServerException
- Throws:
TRTrackerServerException
-
addPeerListener
public void addPeerListener(TRTrackerServerTorrentPeerListener l)
- Specified by:
addPeerListener
in interfaceTRTrackerServerTorrent
-
removePeerListener
public void removePeerListener(TRTrackerServerTorrentPeerListener l)
- Specified by:
removePeerListener
in interfaceTRTrackerServerTorrent
-
disableCaching
public void disableCaching()
- Specified by:
disableCaching
in interfaceTRTrackerServerTorrent
-
isCachingEnabled
public boolean isCachingEnabled()
-
getBadNATPeerCount
public int getBadNATPeerCount()
-
delete
protected void delete()
-
getString
public java.lang.String getString()
- Specified by:
getString
in interfaceTRTrackerServerTorrent
-
-