/* * File : IpFilter.java * Created : 1 oct. 2003 12:27:26 * By : Olivier * * Azureus - a Java Bittorrent client * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details ( see the LICENSE file ). * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package org.gudy.azureus2.core3.ipfilter; /** * @author Olivier * */ import java.util.List; import java.io.File; import java.net.InetAddress; public interface IpFilter { public File getFile(); public void save() throws Exception; public void reload() throws Exception; /** * deprecated and to be removed after 2.0.8.0. Left in to support old SafePeer plugin * version that uses this stuff directly... * @deprecated * @return */ public List getIpRanges(); public IpRange[] getRanges(); public boolean isInRange( String ipAddress); public boolean isInRange( String ipAddress, String torrent_name, byte[] torrent_hash ); public boolean isInRange( String ipAddress, String torrent_name, byte[] torrent_hash, boolean loggable ); public boolean isInRange( InetAddress ipAddress, String torrent_name, byte[] torrent_hash, boolean loggable ); public IpRange createRange( boolean sessionOnly); public void addRange( IpRange range ); public void removeRange( IpRange range ); public int getNbRanges(); public int getNbIpsBlocked(); public int getNbIpsBlockedAndLoggable(); public BlockedIp[] getBlockedIps(); public void clearBlockedIPs(); public boolean ban( String ipAddress, String torrent_name, boolean manual ); public void unban(String ipAddress); public void unban(String ipAddress, boolean block); public int getNbBannedIps(); public BannedIp[] getBannedIps(); public void clearBannedIps(); public void addExcludedHash( byte[] hash ); public void removeExcludedHash( byte[] hash ); public boolean isEnabled(); public void setEnabled( boolean enabled ); public boolean getInRangeAddressesAreAllowed(); public void setInRangeAddressesAreAllowed( boolean b ); public void markAsUpToDate(); public long getLastUpdateTime(); public long getTotalAddressesInRange(); public void addListener( IPFilterListener l ); public void removeListener( IPFilterListener l ); public void addExternalHandler( IpFilterExternalHandler handler ); public void removeExternalHandler( IpFilterExternalHandler handler ); void reloadSync() throws Exception; }