Class NetworkAdmin

  • Direct Known Subclasses:
    NetworkAdminImpl

    public abstract class NetworkAdmin
    extends java.lang.Object
    • Field Detail

      • 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
      • 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
    • Constructor Detail

      • NetworkAdmin

        public NetworkAdmin()
    • Method Detail

      • 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()
      • 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()
      • createInboundProtocol

        public abstract NetworkAdminProtocol createInboundProtocol​(Core core,
                                                                   int type,
                                                                   int port)
      • createSocksProxy

        public abstract NetworkAdminSocksProxy createSocksProxy​(java.lang.String host,
                                                                int port,
                                                                java.lang.String username,
                                                                java.lang.String password)
      • isSocksActive

        public abstract boolean isSocksActive()
      • classifyRoute

        public abstract java.lang.String classifyRoute​(java.net.InetAddress address)
      • canTraceRoute

        public abstract boolean canTraceRoute()
      • canPing

        public abstract boolean canPing()
      • 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)}
      • runInitialChecks

        public abstract void runInitialChecks​(Core core)
      • logNATStatus

        public abstract void logNATStatus​(IndentWriter iw)
      • generateDiagnostics

        public abstract void generateDiagnostics​(IndentWriter iw)