Class NetworkAdmin
- java.lang.Object
-
- com.biglybt.core.networkmanager.admin.NetworkAdmin
-
- Direct Known Subclasses:
NetworkAdminImpl
public abstract class NetworkAdmin extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static int
IP_PROTOCOL_VERSION_AUTO
static int
IP_PROTOCOL_VERSION_REQUIRE_V4
static int
IP_PROTOCOL_VERSION_REQUIRE_V6
static java.lang.String
PR_ADDITIONAL_SERVICE_ADDRESS
static java.lang.String
PR_AS
static java.lang.String
PR_DEFAULT_BIND_ADDRESS
static java.lang.String[]
PR_NAMES
static java.lang.String
PR_NETWORK_INTERFACES
private static NetworkAdmin
singleton
-
Constructor Summary
Constructors Constructor Description NetworkAdmin()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
addAndFirePropertyChangeListener(NetworkAdminPropertyChangeListener listener)
abstract void
addPropertyChangeListener(NetworkAdminPropertyChangeListener listener)
abstract boolean
canPing()
abstract boolean
canTraceRoute()
abstract java.lang.String
classifyRoute(java.net.InetAddress address)
abstract NetworkAdminProtocol
createInboundProtocol(Core core, int type, int port)
abstract NetworkAdminSocksProxy
createSocksProxy(java.lang.String host, int port, java.lang.String username, java.lang.String password)
abstract void
generateDiagnostics(IndentWriter iw)
abstract java.net.InetAddress[]
getAllBindAddresses(boolean include_wildcard)
abstract java.net.InetAddress
getAlternativeProtocolBindAddress(java.net.InetAddress address)
abstract java.net.InetAddress[]
getBindableAddresses()
Returns the list of current addresses that can successfully be bound to with an ephemeral portabstract int
getBindablePort(int preferred_port)
abstract java.lang.String
getBindStatus()
abstract NetworkAdminASN
getCurrentASN()
abstract java.net.InetAddress
getDefaultPublicAddress()
abstract java.net.InetAddress
getDefaultPublicAddress(boolean peek)
abstract java.net.InetAddress
getDefaultPublicAddressV6()
abstract NetworkAdminHTTPProxy
getHTTPProxy()
abstract NetworkAdminProtocol[]
getInboundProtocols(Core core)
abstract java.lang.Object[]
getInterfaceForAddress(java.net.InetAddress address)
abstract NetworkAdminNetworkInterface[]
getInterfaces()
abstract java.net.InetAddress
getLoopbackAddress()
abstract java.net.InetAddress
getMultiHomedOutgoingRoundRobinBindAddress(java.net.InetAddress target)
abstract java.net.InetAddress[]
getMultiHomedServiceBindAddresses(boolean forNIO)
abstract NetworkAdminNATDevice[]
getNATDevices(Core core)
abstract java.lang.String
getNetworkInterfacesAsString()
abstract NetworkAdminProtocol[]
getOutboundProtocols(Core core)
abstract void
getRoutes(java.net.InetAddress target, int max_millis, NetworkAdminRoutesListener listener)
java.net.InetAddress
getSingleHomedServiceBindAddress()
abstract java.net.InetAddress
getSingleHomedServiceBindAddress(int protocolVersion)
abstract java.net.InetAddress[]
getSingleHomedServiceBinding(java.lang.String host)
Selects a bind address based on available host address and bind protocol familiesstatic NetworkAdmin
getSingleton()
abstract NetworkAdminSocksProxy[]
getSocksProxies()
abstract java.net.InetAddress
guessRoutableBindAddress()
abstract boolean
hasDHTIPV4()
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(java.net.InetAddress address)
ad-hoc queryabstract void
lookupASN(java.net.InetAddress address, NetworkAdminASNListener listener)
abstract NetworkAdminASN
lookupCurrentASN(java.net.InetAddress address)
Only call if the supplied address is believed to be the current public addressabstract boolean
mustBind()
abstract void
pingTargets(java.net.InetAddress target, int max_millis, NetworkAdminRoutesListener listener)
abstract void
removePropertyChangeListener(NetworkAdminPropertyChangeListener listener)
abstract java.net.InetAddress[]
resolveBindAddresses(java.lang.String bind_to)
Given an interface name etc this will return the corresponding ip addressesabstract void
runInitialChecks(Core core)
abstract java.net.InetAddress
testProtocol(NetworkAdminProtocol protocol)
-
-
-
Field Detail
-
singleton
private static NetworkAdmin singleton
-
PR_NETWORK_INTERFACES
public static final java.lang.String PR_NETWORK_INTERFACES
- See Also:
- Constant Field Values
-
PR_DEFAULT_BIND_ADDRESS
public static final java.lang.String PR_DEFAULT_BIND_ADDRESS
- See Also:
- Constant Field Values
-
PR_ADDITIONAL_SERVICE_ADDRESS
public static final java.lang.String PR_ADDITIONAL_SERVICE_ADDRESS
- See Also:
- Constant Field Values
-
PR_AS
public static final java.lang.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 java.lang.String[] PR_NAMES
-
-
Method Detail
-
getSingleton
public static NetworkAdmin getSingleton()
-
getSingleHomedServiceBindAddress
public java.net.InetAddress getSingleHomedServiceBindAddress()
-
getSingleHomedServiceBindAddress
public abstract java.net.InetAddress getSingleHomedServiceBindAddress(int protocolVersion) throws java.nio.channels.UnsupportedAddressTypeException
- Throws:
java.nio.channels.UnsupportedAddressTypeException
- when no address matching the v4/v6 requirements is found, always returns an address when auto is selected
-
getSingleHomedServiceBinding
public abstract java.net.InetAddress[] getSingleHomedServiceBinding(java.lang.String host) throws java.net.UnknownHostException, java.nio.channels.UnsupportedAddressTypeException
Selects a bind address based on available host address and bind protocol families- Parameters:
host
-- Returns:
- Array with 2 entries, first is selected host address, second is selected bind address (possibly null of course)
- Throws:
java.net.UnknownHostException
java.nio.channels.UnsupportedAddressTypeException
-
getMultiHomedServiceBindAddresses
public abstract java.net.InetAddress[] getMultiHomedServiceBindAddresses(boolean forNIO)
-
getMultiHomedOutgoingRoundRobinBindAddress
public abstract java.net.InetAddress getMultiHomedOutgoingRoundRobinBindAddress(java.net.InetAddress target)
-
getNetworkInterfacesAsString
public abstract java.lang.String getNetworkInterfacesAsString()
-
getAllBindAddresses
public abstract java.net.InetAddress[] getAllBindAddresses(boolean include_wildcard)
-
resolveBindAddresses
public abstract java.net.InetAddress[] resolveBindAddresses(java.lang.String bind_to)
Given an interface name etc this will return the corresponding ip addresses- Parameters:
bind_to
-- Returns:
-
guessRoutableBindAddress
public abstract java.net.InetAddress guessRoutableBindAddress()
-
getAlternativeProtocolBindAddress
public abstract java.net.InetAddress getAlternativeProtocolBindAddress(java.net.InetAddress address)
-
getBindableAddresses
public abstract java.net.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 java.io.IOException
- Throws:
java.io.IOException
-
mustBind
public abstract boolean mustBind()
-
hasMissingForcedBind
public abstract boolean hasMissingForcedBind()
-
getBindStatus
public abstract java.lang.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)
-
getLoopbackAddress
public abstract java.net.InetAddress getLoopbackAddress()
-
getOutboundProtocols
public abstract NetworkAdminProtocol[] getOutboundProtocols(Core core)
-
getInboundProtocols
public abstract NetworkAdminProtocol[] getInboundProtocols(Core core)
-
createInboundProtocol
public abstract NetworkAdminProtocol createInboundProtocol(Core core, int type, int port)
-
testProtocol
public abstract java.net.InetAddress testProtocol(NetworkAdminProtocol protocol) throws NetworkAdminException
- Throws:
NetworkAdminException
-
createSocksProxy
public abstract NetworkAdminSocksProxy createSocksProxy(java.lang.String host, int port, java.lang.String username, java.lang.String password)
-
isSocksActive
public abstract boolean isSocksActive()
-
getSocksProxies
public abstract NetworkAdminSocksProxy[] getSocksProxies()
-
getHTTPProxy
public abstract NetworkAdminHTTPProxy getHTTPProxy()
-
getNATDevices
public abstract NetworkAdminNATDevice[] getNATDevices(Core core)
-
lookupCurrentASN
public abstract NetworkAdminASN lookupCurrentASN(java.net.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(java.net.InetAddress address) throws NetworkAdminException
ad-hoc query- Parameters:
address
-- Returns:
- Throws:
NetworkAdminException
-
lookupASN
public abstract void lookupASN(java.net.InetAddress address, NetworkAdminASNListener listener)
-
classifyRoute
public abstract java.lang.String classifyRoute(java.net.InetAddress address)
-
canTraceRoute
public abstract boolean canTraceRoute()
-
getRoutes
public abstract void getRoutes(java.net.InetAddress target, int max_millis, NetworkAdminRoutesListener listener) throws NetworkAdminException
- Throws:
NetworkAdminException
-
canPing
public abstract boolean canPing()
-
pingTargets
public abstract void pingTargets(java.net.InetAddress target, int max_millis, NetworkAdminRoutesListener listener) throws NetworkAdminException
- Throws:
NetworkAdminException
-
getDefaultPublicAddress
public abstract java.net.InetAddress getDefaultPublicAddress()
-
getDefaultPublicAddress
public abstract java.net.InetAddress getDefaultPublicAddress(boolean peek)
-
getDefaultPublicAddressV6
public abstract java.net.InetAddress getDefaultPublicAddressV6()
-
hasDHTIPV4
public abstract boolean hasDHTIPV4()
-
hasDHTIPV6
public abstract boolean hasDHTIPV6()
-
getInterfaceForAddress
public abstract java.lang.Object[] getInterfaceForAddress(java.net.InetAddress address)
- Parameters:
address
-- Returns:
- { NetworkInterface, InetAddress (best intf address)}, {NetworkInterface} or {InetAddress (nomatch, same as arg)}
-
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(Core core)
-
logNATStatus
public abstract void logNATStatus(IndentWriter iw)
-
generateDiagnostics
public abstract void generateDiagnostics(IndentWriter iw)
-
-