Package com.biglybt.core.ipfilter.impl
Class IpFilterImpl
- java.lang.Object
-
- com.biglybt.core.ipfilter.impl.IpFilterImpl
-
-
Field Summary
Fields Modifier and Type Field Description (package private) FrequencyLimitedDispatcher
blockedListChangedDispatcher
(package private) static AEMonitor
class_mon
private ByteArrayHashMap<java.lang.String>
excluded_hashes
private CopyOnWriteList<IpFilterExternalHandler>
external_handlers
(package private) boolean
ip_filter_allow
(package private) boolean
ip_filter_enabled
private IPBannerImpl
ipBanner
private static IpFilterImpl
ipFilter
private IpFilterAutoLoaderImpl
ipFilterAutoLoader
private java.util.LinkedList
ipsBlocked
private long
last_update_time
(package private) CopyOnWriteList<IPFilterListener>
listenerz
protected static LogIDs
LOGID
private static int
MAX_BLOCKS_TO_REMEMBER
private int
num_ips_blocked
private int
num_ips_blocked_loggable
private IPAddressRangeManagerV4
range_manager_v4
private IPAddressRangeManagerV6
range_manager_v6
-
Constructor Summary
Constructors Modifier Constructor Description private
IpFilterImpl()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
addBlockedIP(BlockedIp ip, byte[] torrent_hash, boolean loggable)
void
addExcludedHash(byte[] hash)
void
addExternalHandler(IpFilterExternalHandler h)
void
addListener(IPFilterListener l)
void
addRange(IpRange range)
boolean
ban(java.lang.String ipAddress, java.lang.String torrent_name, boolean manual)
boolean
ban(java.lang.String ipAddress, java.lang.String torrent_name, boolean manual, int for_mins)
protected void
banListChanged()
protected IpRange
checkExternalHandlers(byte[] torrent_hash, java.lang.String address)
protected IpRange
checkExternalHandlers(byte[] torrent_hash, java.net.InetAddress address)
void
clearBannedIps()
void
clearBlockedIPs()
IpRange
createRange(int addressType, boolean sessionOnly)
BannedIp[]
getBannedIps()
BlockedIp[]
getBlockedIps()
java.io.File
getFile()
boolean
getInRangeAddressesAreAllowed()
static IpFilter
getInstance()
long
getLastUpdateTime()
protected CopyOnWriteList<IPFilterListener>
getListeners()
int
getNbBannedIps()
int
getNbIpsBlocked()
int
getNbIpsBlockedAndLoggable()
int
getNbRanges()
IpRange[]
getRanges()
boolean
isEnabled()
boolean
isInRange(java.lang.String ipAddress)
boolean
isInRange(java.lang.String ipAddress, java.lang.String torrent_name, byte[] torrent_hash)
boolean
isInRange(java.lang.String ipAddress, java.lang.String torrent_name, byte[] torrent_hash, boolean loggable)
boolean
isInRange(java.net.InetAddress ipAddress, java.lang.String torrent_name, byte[] torrent_hash, boolean loggable)
private void
loadFilters(boolean allowAsyncDownloading, boolean loadOldWhileAsyncDownloading)
protected void
markAsUpToDate()
void
reload()
void
reload(boolean allowAsyncDownloading)
void
reloadSync()
void
removeExcludedHash(byte[] hash)
void
removeExternalHandler(IpFilterExternalHandler h)
void
removeListener(IPFilterListener l)
void
removeRange(IpRange range)
void
save()
void
setEnabled(boolean enabled)
void
setInRangeAddressesAreAllowed(boolean b)
protected void
setValidOrNot(IpRange range, boolean valid)
void
unban(java.lang.String ipAddress)
void
unban(java.lang.String ipAddress, boolean block)
-
-
-
Field Detail
-
LOGID
protected static final LogIDs LOGID
-
MAX_BLOCKS_TO_REMEMBER
private static final int MAX_BLOCKS_TO_REMEMBER
- See Also:
- Constant Field Values
-
ipFilter
private static IpFilterImpl ipFilter
-
class_mon
static final AEMonitor class_mon
-
range_manager_v4
private final IPAddressRangeManagerV4 range_manager_v4
-
range_manager_v6
private final IPAddressRangeManagerV6 range_manager_v6
-
ipsBlocked
private final java.util.LinkedList ipsBlocked
-
num_ips_blocked
private int num_ips_blocked
-
num_ips_blocked_loggable
private int num_ips_blocked_loggable
-
last_update_time
private long last_update_time
-
ipBanner
private final IPBannerImpl ipBanner
-
listenerz
final CopyOnWriteList<IPFilterListener> listenerz
-
external_handlers
private final CopyOnWriteList<IpFilterExternalHandler> external_handlers
-
blockedListChangedDispatcher
final FrequencyLimitedDispatcher blockedListChangedDispatcher
-
ipFilterAutoLoader
private final IpFilterAutoLoaderImpl ipFilterAutoLoader
-
ip_filter_enabled
boolean ip_filter_enabled
-
ip_filter_allow
boolean ip_filter_allow
-
excluded_hashes
private ByteArrayHashMap<java.lang.String> excluded_hashes
-
-
Method Detail
-
getInstance
public static IpFilter getInstance()
-
reload
public void reload() throws java.lang.Exception
-
reloadSync
public void reloadSync() throws java.lang.Exception
- Specified by:
reloadSync
in interfaceIpFilter
- Throws:
java.lang.Exception
-
reload
public void reload(boolean allowAsyncDownloading) throws java.lang.Exception
- Throws:
java.lang.Exception
-
save
public void save() throws java.lang.Exception
-
loadFilters
private void loadFilters(boolean allowAsyncDownloading, boolean loadOldWhileAsyncDownloading) throws java.lang.Exception
- Throws:
java.lang.Exception
-
isInRange
public boolean isInRange(java.lang.String ipAddress)
-
isInRange
public boolean isInRange(java.lang.String ipAddress, java.lang.String torrent_name, byte[] torrent_hash)
-
isInRange
public boolean isInRange(java.lang.String ipAddress, java.lang.String torrent_name, byte[] torrent_hash, boolean loggable)
-
isInRange
public boolean isInRange(java.net.InetAddress ipAddress, java.lang.String torrent_name, byte[] torrent_hash, boolean loggable)
-
checkExternalHandlers
protected IpRange checkExternalHandlers(byte[] torrent_hash, java.lang.String address)
-
checkExternalHandlers
protected IpRange checkExternalHandlers(byte[] torrent_hash, java.net.InetAddress address)
-
addBlockedIP
private boolean addBlockedIP(BlockedIp ip, byte[] torrent_hash, boolean loggable)
-
getInRangeAddressesAreAllowed
public boolean getInRangeAddressesAreAllowed()
- Specified by:
getInRangeAddressesAreAllowed
in interfaceIpFilter
-
setInRangeAddressesAreAllowed
public void setInRangeAddressesAreAllowed(boolean b)
- Specified by:
setInRangeAddressesAreAllowed
in interfaceIpFilter
-
createRange
public IpRange createRange(int addressType, boolean sessionOnly)
- Specified by:
createRange
in interfaceIpFilter
-
removeRange
public void removeRange(IpRange range)
- Specified by:
removeRange
in interfaceIpFilter
-
getNbRanges
public int getNbRanges()
- Specified by:
getNbRanges
in interfaceIpFilter
-
setValidOrNot
protected void setValidOrNot(IpRange range, boolean valid)
-
getNbIpsBlocked
public int getNbIpsBlocked()
- Specified by:
getNbIpsBlocked
in interfaceIpFilter
-
getNbIpsBlockedAndLoggable
public int getNbIpsBlockedAndLoggable()
- Specified by:
getNbIpsBlockedAndLoggable
in interfaceIpFilter
-
ban
public boolean ban(java.lang.String ipAddress, java.lang.String torrent_name, boolean manual)
-
getBlockedIps
public BlockedIp[] getBlockedIps()
- Specified by:
getBlockedIps
in interfaceIpFilter
-
clearBlockedIPs
public void clearBlockedIPs()
- Specified by:
clearBlockedIPs
in interfaceIpFilter
-
addExcludedHash
public void addExcludedHash(byte[] hash)
- Specified by:
addExcludedHash
in interfaceIpFilter
-
removeExcludedHash
public void removeExcludedHash(byte[] hash)
- Specified by:
removeExcludedHash
in interfaceIpFilter
-
setEnabled
public void setEnabled(boolean enabled)
- Specified by:
setEnabled
in interfaceIpFilter
-
markAsUpToDate
protected void markAsUpToDate()
-
getLastUpdateTime
public long getLastUpdateTime()
- Specified by:
getLastUpdateTime
in interfaceIpFilter
-
addListener
public void addListener(IPFilterListener l)
- Specified by:
addListener
in interfaceIpFilter
-
removeListener
public void removeListener(IPFilterListener l)
- Specified by:
removeListener
in interfaceIpFilter
-
addExternalHandler
public void addExternalHandler(IpFilterExternalHandler h)
- Specified by:
addExternalHandler
in interfaceIpFilter
-
removeExternalHandler
public void removeExternalHandler(IpFilterExternalHandler h)
- Specified by:
removeExternalHandler
in interfaceIpFilter
-
getListeners
protected CopyOnWriteList<IPFilterListener> getListeners()
-
banListChanged
protected void banListChanged()
-
ban
public boolean ban(java.lang.String ipAddress, java.lang.String torrent_name, boolean manual, int for_mins)
-
clearBannedIps
public void clearBannedIps()
- Specified by:
clearBannedIps
in interfaceIpFilter
-
getBannedIps
public BannedIp[] getBannedIps()
- Specified by:
getBannedIps
in interfaceIpFilter
-
getNbBannedIps
public int getNbBannedIps()
- Specified by:
getNbBannedIps
in interfaceIpFilter
-
-