com.aelitis.azureus.core.networkmanager.admin
Class NetworkAdmin

java.lang.Object
  extended by com.aelitis.azureus.core.networkmanager.admin.NetworkAdmin
Direct Known Subclasses:
NetworkAdminImpl

public abstract class NetworkAdmin
extends Object


Field Summary
static int IP_PROTOCOL_VERSION_AUTO
           
static int IP_PROTOCOL_VERSION_REQUIRE_V4
           
static int IP_PROTOCOL_VERSION_REQUIRE_V6
           
static String PR_AS
           
static String PR_DEFAULT_BIND_ADDRESS
           
static String[] PR_NAMES
           
static String PR_NETWORK_INTERFACES
           
 
Constructor Summary
NetworkAdmin()
           
 
Method Summary
abstract  void addAndFirePropertyChangeListener(NetworkAdminPropertyChangeListener listener)
           
abstract  void addPropertyChangeListener(NetworkAdminPropertyChangeListener listener)
           
abstract  boolean canPing()
           
abstract  boolean canTraceRoute()
           
abstract  String classifyRoute(InetAddress address)
           
abstract  NetworkAdminProtocol createInboundProtocol(AzureusCore azureus_core, int type, int port)
           
abstract  NetworkAdminSocksProxy createSocksProxy(String host, int port, String username, String password)
           
abstract  void generateDiagnostics(IndentWriter iw)
           
abstract  InetAddress[] getAllBindAddresses(boolean include_wildcard)
           
abstract  InetAddress[] getBindableAddresses()
          Returns the list of current addresses that can successfully be bound to with an ephemeral port
abstract  int getBindablePort(int preferred_port)
           
abstract  String getBindStatus()
           
abstract  NetworkAdminASN getCurrentASN()
           
abstract  InetAddress getDefaultPublicAddress()
           
abstract  InetAddress getDefaultPublicAddress(boolean peek)
           
abstract  InetAddress getDefaultPublicAddressV6()
           
abstract  InetAddress getDefaultPublicAddressV6(boolean peek)
           
abstract  NetworkAdminHTTPProxy getHTTPProxy()
           
abstract  NetworkAdminProtocol[] getInboundProtocols(AzureusCore azureus_core)
           
abstract  NetworkAdminNetworkInterface[] getInterfaces()
           
abstract  InetAddress getMultiHomedOutgoingRoundRobinBindAddress(InetAddress target)
           
abstract  InetAddress[] getMultiHomedServiceBindAddresses(boolean forNIO)
           
abstract  NetworkAdminNATDevice[] getNATDevices(AzureusCore azureus_core)
           
abstract  String getNetworkInterfacesAsString()
           
abstract  NetworkAdminProtocol[] getOutboundProtocols(AzureusCore azureus_core)
           
abstract  void getRoutes(InetAddress target, int max_millis, NetworkAdminRoutesListener listener)
           
 InetAddress getSingleHomedServiceBindAddress()
           
abstract  InetAddress getSingleHomedServiceBindAddress(int protocolVersion)
           
static NetworkAdmin getSingleton()
           
abstract  NetworkAdminSocksProxy[] getSocksProxies()
           
abstract  InetAddress guessRoutableBindAddress()
           
abstract  boolean hasDHTIPV6()
           
abstract  boolean hasIPV4Potential()
           
 boolean hasIPV6Potential()
           
abstract  boolean hasIPV6Potential(boolean forNIO)
           
abstract  boolean hasMissingForcedBind()
           
abstract  boolean isIPV6Enabled()
           
abstract  boolean isSocksActive()
           
abstract  void logNATStatus(IndentWriter iw)
           
abstract  NetworkAdminASN lookupASN(InetAddress address)
          ad-hoc query
abstract  void lookupASN(InetAddress address, NetworkAdminASNListener listener)
           
abstract  NetworkAdminASN lookupCurrentASN(InetAddress address)
          Only call if the supplied address is believed to be the current public address
abstract  boolean mustBind()
           
abstract  void pingTargets(InetAddress target, int max_millis, NetworkAdminRoutesListener listener)
           
abstract  void removePropertyChangeListener(NetworkAdminPropertyChangeListener listener)
           
abstract  InetAddress[] resolveBindAddresses(String bind_to)
          Given an interface name etc this will return the corresponding ip addresses
abstract  void runInitialChecks(AzureusCore azureus_core)
           
abstract  InetAddress testProtocol(NetworkAdminProtocol protocol)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PR_NETWORK_INTERFACES

public static final String PR_NETWORK_INTERFACES
See Also:
Constant Field Values

PR_DEFAULT_BIND_ADDRESS

public static final String PR_DEFAULT_BIND_ADDRESS
See Also:
Constant Field Values

PR_AS

public static final String PR_AS
See Also:
Constant Field Values

IP_PROTOCOL_VERSION_AUTO

public static final int IP_PROTOCOL_VERSION_AUTO
See Also:
Constant Field Values

IP_PROTOCOL_VERSION_REQUIRE_V4

public static final int IP_PROTOCOL_VERSION_REQUIRE_V4
See Also:
Constant Field Values

IP_PROTOCOL_VERSION_REQUIRE_V6

public static final int IP_PROTOCOL_VERSION_REQUIRE_V6
See Also:
Constant Field Values

PR_NAMES

public static final String[] PR_NAMES
Constructor Detail

NetworkAdmin

public NetworkAdmin()
Method Detail

getSingleton

public static NetworkAdmin getSingleton()

getSingleHomedServiceBindAddress

public InetAddress getSingleHomedServiceBindAddress()

getSingleHomedServiceBindAddress

public abstract InetAddress getSingleHomedServiceBindAddress(int protocolVersion)
                                                      throws UnsupportedAddressTypeException
Throws:
UnsupportedAddressTypeException - when no address matching the v4/v6 requirements is found, always returns an address when auto is selected

getMultiHomedServiceBindAddresses

public abstract InetAddress[] getMultiHomedServiceBindAddresses(boolean forNIO)

getMultiHomedOutgoingRoundRobinBindAddress

public abstract InetAddress getMultiHomedOutgoingRoundRobinBindAddress(InetAddress target)

getNetworkInterfacesAsString

public abstract String getNetworkInterfacesAsString()

getAllBindAddresses

public abstract InetAddress[] getAllBindAddresses(boolean include_wildcard)

resolveBindAddresses

public abstract InetAddress[] resolveBindAddresses(String bind_to)
Given an interface name etc this will return the corresponding ip addresses

Parameters:
bind_to -
Returns:

guessRoutableBindAddress

public abstract InetAddress guessRoutableBindAddress()

getBindableAddresses

public abstract InetAddress[] getBindableAddresses()
Returns the list of current addresses that can successfully be bound to with an ephemeral port

Returns:

getBindablePort

public abstract int getBindablePort(int preferred_port)
                             throws IOException
Throws:
IOException

mustBind

public abstract boolean mustBind()

hasMissingForcedBind

public abstract boolean hasMissingForcedBind()

getBindStatus

public abstract String getBindStatus()

getInterfaces

public abstract NetworkAdminNetworkInterface[] getInterfaces()

hasIPV4Potential

public abstract boolean hasIPV4Potential()

isIPV6Enabled

public abstract boolean isIPV6Enabled()

hasIPV6Potential

public boolean hasIPV6Potential()

hasIPV6Potential

public abstract boolean hasIPV6Potential(boolean forNIO)

getOutboundProtocols

public abstract NetworkAdminProtocol[] getOutboundProtocols(AzureusCore azureus_core)

getInboundProtocols

public abstract NetworkAdminProtocol[] getInboundProtocols(AzureusCore azureus_core)

createInboundProtocol

public abstract NetworkAdminProtocol createInboundProtocol(AzureusCore azureus_core,
                                                           int type,
                                                           int port)

testProtocol

public abstract InetAddress testProtocol(NetworkAdminProtocol protocol)
                                  throws NetworkAdminException
Throws:
NetworkAdminException

createSocksProxy

public abstract NetworkAdminSocksProxy createSocksProxy(String host,
                                                        int port,
                                                        String username,
                                                        String password)

isSocksActive

public abstract boolean isSocksActive()

getSocksProxies

public abstract NetworkAdminSocksProxy[] getSocksProxies()

getHTTPProxy

public abstract NetworkAdminHTTPProxy getHTTPProxy()

getNATDevices

public abstract NetworkAdminNATDevice[] getNATDevices(AzureusCore azureus_core)

lookupCurrentASN

public abstract NetworkAdminASN lookupCurrentASN(InetAddress address)
                                          throws NetworkAdminException
Only call if the supplied address is believed to be the current public address

Parameters:
address -
Returns:
Throws:
NetworkAdminException

getCurrentASN

public abstract NetworkAdminASN getCurrentASN()

lookupASN

public abstract NetworkAdminASN lookupASN(InetAddress address)
                                   throws NetworkAdminException
ad-hoc query

Parameters:
address -
Returns:
Throws:
NetworkAdminException

lookupASN

public abstract void lookupASN(InetAddress address,
                               NetworkAdminASNListener listener)

classifyRoute

public abstract String classifyRoute(InetAddress address)

canTraceRoute

public abstract boolean canTraceRoute()

getRoutes

public abstract void getRoutes(InetAddress target,
                               int max_millis,
                               NetworkAdminRoutesListener listener)
                        throws NetworkAdminException
Throws:
NetworkAdminException

canPing

public abstract boolean canPing()

pingTargets

public abstract void pingTargets(InetAddress target,
                                 int max_millis,
                                 NetworkAdminRoutesListener listener)
                          throws NetworkAdminException
Throws:
NetworkAdminException

getDefaultPublicAddress

public abstract InetAddress getDefaultPublicAddress()

getDefaultPublicAddress

public abstract InetAddress getDefaultPublicAddress(boolean peek)

getDefaultPublicAddressV6

public abstract InetAddress getDefaultPublicAddressV6()

getDefaultPublicAddressV6

public abstract InetAddress getDefaultPublicAddressV6(boolean peek)

hasDHTIPV6

public abstract boolean hasDHTIPV6()

addPropertyChangeListener

public abstract void addPropertyChangeListener(NetworkAdminPropertyChangeListener listener)

addAndFirePropertyChangeListener

public abstract void addAndFirePropertyChangeListener(NetworkAdminPropertyChangeListener listener)

removePropertyChangeListener

public abstract void removePropertyChangeListener(NetworkAdminPropertyChangeListener listener)

runInitialChecks

public abstract void runInitialChecks(AzureusCore azureus_core)

logNATStatus

public abstract void logNATStatus(IndentWriter iw)

generateDiagnostics

public abstract void generateDiagnostics(IndentWriter iw)