Class TunnelPoolSettings


  • public class TunnelPoolSettings
    extends Object
    Wrap up the settings for a pool of tunnels.
    • Constructor Detail

      • TunnelPoolSettings

        public TunnelPoolSettings​(boolean isInbound)
        Exploratory tunnel
      • TunnelPoolSettings

        public TunnelPoolSettings​(Hash dest,
                                  boolean isInbound)
        Client tunnel unless dest == null
    • Method Detail

      • getQuantity

        public int getQuantity()
        how many tunnels should be available at all times
      • setQuantity

        public void setQuantity​(int quantity)
      • getBackupQuantity

        public int getBackupQuantity()
        how many backup tunnels should be kept waiting in the wings
      • setBackupQuantity

        public void setBackupQuantity​(int quantity)
      • getTotalQuantity

        public int getTotalQuantity()
        Convenience
        Returns:
        getQuantity() + getBackupQuantity()
        Since:
        0.8.11
      • getLength

        public int getLength()
        How many remote hops should be in the tunnel NOT including us
        Returns:
        0 to 7
      • setLength

        public void setLength​(int length)
        How many remote hops should be in the tunnel NOT including us
        Parameters:
        length - 0 to 7 (not enforced here)
      • getAllowZeroHop

        public boolean getAllowZeroHop()
        If there are no tunnels to build with, will this pool allow 0 hop tunnels? As of 0.9.44, same goes for exploratory: Prior to 0.9.35, generally true for client. As of 0.9.35, generally false for client, but true if getLength() + Math.min(getLengthVariance(), 0) <= 0, OR if getLengthOverride() == 0 OR if setAllowZeroHop(true) was called or set in properties.
      • setAllowZeroHop

        @Deprecated
        public void setAllowZeroHop​(boolean ok)
        Deprecated.
        unused
        If there are no tunnels to build with, will this pool allow 0 hop tunnels? No effect on exploratory (always true)
        Parameters:
        ok - if true, getAllowZeroHop() will always return true if false, getAllowZeroHop will return as documented.
      • getLengthVariance

        public int getLengthVariance()
        how should the length be varied. if negative, this randomly skews from (length - variance) to (length + variance), or if positive, from length to (length + variance), inclusive.
      • setLengthVariance

        public void setLengthVariance​(int variance)
      • getLengthOverride

        public int getLengthOverride()
        A temporary length to be used due to network conditions. If less than zero, the standard length should be used. Unused until 0.8.11
      • setLengthOverride

        public void setLengthOverride​(int length)
        A temporary length to be used due to network conditions. If less than zero, the standard length will be used. Unused until 0.8.11
      • isInbound

        public boolean isInbound()
        is this an inbound tunnel?
      • isExploratory

        public boolean isExploratory()
        is this an exploratory tunnel (or a client tunnel)
      • getDestination

        public Hash getDestination()
        what destination is this a client tunnel for (or null if exploratory)
      • getAliases

        public Set<Hash> getAliases()
        Other destinations that use the same tunnel (or null if exploratory) Modifiable, concurrent, not a copy
        Since:
        0.9.21
      • getAliasOf

        public Hash getAliasOf()
        Other destination that this is an alias of (or null). If non-null, don't build tunnels.
        Since:
        0.9.21
      • setAliasOf

        public void setAliasOf​(Hash h)
        Set other destination that this is an alias of (or null). If non-null, don't build tunnels.
        Since:
        0.9.21
      • getRandomKey

        public SessionKey getRandomKey()
        random key used for peer ordering
        Returns:
        non-null
      • getDestinationNickname

        public String getDestinationNickname()
        what user supplied name was given to the client connected (can be null)
      • setDestinationNickname

        public void setDestinationNickname​(String name)
      • getIPRestriction

        public int getIPRestriction()
        How many bytes to match to determine if a router's IP is too close to another's to be in the same tunnel (1-4, 0 to disable)
      • setIPRestriction

        public void setIPRestriction​(int b)
      • getPriority

        public int getPriority()
        Outbound message priority - for outbound tunnels only
        Returns:
        -25 to +30, default 30 for outbound exploratory and 0 for others
        Since:
        0.9.4
      • getUnknownOptions

        public Properties getUnknownOptions()
        Returns:
        non-null
      • readFromProperties

        public void readFromProperties​(String prefix,
                                       Properties props)
        Defaults in props are NOT honored. In-JVM client side must promote defaults to the primary map.
        Parameters:
        prefix - non-null
      • writeToProperties

        public void writeToProperties​(String prefix,
                                      Properties props)
        Parameters:
        prefix - non-null