Class I2PSnarkUtil


  • public class I2PSnarkUtil
    extends Object
    I2P specific helpers for I2PSnark We use this class as a sort of context for i2psnark so we can run multiple instances of single Snarks (but not multiple SnarkManagers, it is still static)
    • Constructor Detail

      • I2PSnarkUtil

        public I2PSnarkUtil​(I2PAppContext ctx,
                            String baseName)
        Parameters:
        baseName - generally "i2psnark"
        Since:
        Jetty 7
    • Method Detail

      • setI2CPConfig

        public void setI2CPConfig​(String i2cpHost,
                                  int i2cpPort,
                                  Map opts)
        Parameters:
        i2cpHost - may be null for no change
        i2cpPort - may be 0 for no change
        opts - may be null for no change
      • setMaxUploaders

        public void setMaxUploaders​(int limit)
      • setMaxUpBW

        public void setMaxUpBW​(int limit)
        This updates ALL the session options (not just the bw) and tells the router
        Parameters:
        limit - KBps
      • setMaxConnections

        public void setMaxConnections​(int limit)
      • setStartupDelay

        public void setStartupDelay​(int minutes)
      • getI2CPHost

        public String getI2CPHost()
      • getI2CPPort

        public int getI2CPPort()
      • getI2CPOptions

        public Map<String,​String> getI2CPOptions()
        Returns:
        a copy
      • getEepProxyHost

        public String getEepProxyHost()
      • getEepProxyPort

        public int getEepProxyPort()
      • getEepProxySet

        public boolean getEepProxySet()
      • getMaxUploaders

        public int getMaxUploaders()
      • getMaxUpBW

        public int getMaxUpBW()
        Returns:
        KBps
      • getMaxConnections

        public int getMaxConnections()
      • getStartupDelay

        public int getStartupDelay()
      • getFilesPublic

        public boolean getFilesPublic()
        Since:
        0.8.9
      • setFilesPublic

        public void setFilesPublic​(boolean yes)
        Since:
        0.8.9
      • getTempDir

        public File getTempDir()
        Since:
        0.9.1
      • connect

        public boolean connect()
        Connect to the router, if we aren't already
      • getDHT

        public DHT getDHT()
        Returns:
        null if disabled or not started
        Since:
        0.8.4
      • connected

        public boolean connected()
      • isConnecting

        public boolean isConnecting()
        Since:
        0.9.1
      • getSocketManager

        public I2PSocketManager getSocketManager()
        For FetchAndAdd
        Returns:
        null if not connected
        Since:
        0.9.1
      • disconnect

        public void disconnect()
        Destroy the destination itself
      • getStartedTime

        public long getStartedTime()
        When did we connect to the network? For RPC
        Returns:
        0 if not connected
        Since:
        0.9.30
      • get

        public File get​(String url)
        Fetch the given URL, returning the file it is stored in, or null on error. No retries.
      • get

        public File get​(String url,
                        boolean rewrite)
        Parameters:
        rewrite - if true, convert http://KEY.i2p/foo/announce to http://i2p/KEY/foo/announce
      • get

        public File get​(String url,
                        int retries)
        Parameters:
        retries - if < 0, set timeout to a few seconds
      • get

        public File get​(String url,
                        boolean rewrite,
                        int retries)
        Parameters:
        retries - if < 0, set timeout to a few seconds
      • get

        public byte[] get​(String url,
                          boolean rewrite,
                          int retries,
                          int initialSize,
                          int maxSize)
        Fetch to memory
        Parameters:
        retries - if < 0, set timeout to a few seconds
        initialSize - buffer size
        maxSize - fails if greater
        Returns:
        null on error
        Since:
        0.9.4
      • getOurIPString

        public String getOurIPString()
      • getMyDestination

        Destination getMyDestination()
        Returns:
        dest or null
        Since:
        0.8.4
      • getDestinationFromBase64

        static Destination getDestinationFromBase64​(String ip)
        Base64 only - static (no naming service)
      • getDestination

        Destination getDestination​(String ip)
        Base64 Hash or Hash.i2p or name.i2p using naming service
      • rewriteAnnounce

        String rewriteAnnounce​(String origAnnounce)
        Given http://KEY.i2p/foo/announce turn it into http://i2p/KEY/foo/announce Given http://tracker.blah.i2p/foo/announce leave it alone
      • setOpenTrackers

        public void setOpenTrackers​(List<String> ot)
        Parameters:
        ot - non-null list of announce URLs
      • getOpenTrackers

        public List<String> getOpenTrackers()
        List of open tracker announce URLs to use as backups
        Returns:
        non-null, possibly unmodifiable, empty if disabled
      • isKnownOpenTracker

        public boolean isKnownOpenTracker​(String url)
        Is this announce URL probably for an open tracker?
        Since:
        0.9.17
      • getBackupTrackers

        public List<String> getBackupTrackers()
        List of open tracker announce URLs to use as backups even if disabled
        Returns:
        non-null
        Since:
        0.9.4
      • setUseOpenTrackers

        public void setUseOpenTrackers​(boolean yes)
      • shouldUseOpenTrackers

        public boolean shouldUseOpenTrackers()
      • setUseDHT

        public void setUseDHT​(boolean yes)
        Since:
        DHT
      • shouldUseDHT

        public boolean shouldUseDHT()
        Since:
        DHT
      • setRatingsEnabled

        public void setRatingsEnabled​(boolean yes)
        Since:
        0.9.31
      • ratingsEnabled

        public boolean ratingsEnabled()
        Since:
        0.9.31
      • setCommentsEnabled

        public void setCommentsEnabled​(boolean yes)
        Since:
        0.9.31
      • commentsEnabled

        public boolean commentsEnabled()
        Since:
        0.9.31
      • setCommentsName

        public void setCommentsName​(String name)
        Since:
        0.9.31
      • getCommentsName

        public String getCommentsName()
        Returns:
        non-null, "" if none
        Since:
        0.9.31
      • utCommentsEnabled

        public boolean utCommentsEnabled()
        Since:
        0.9.31
      • collapsePanels

        public boolean collapsePanels()
        Since:
        0.9.32
      • setCollapsePanels

        public void setCollapsePanels​(boolean yes)
        Since:
        0.9.32
      • toHex

        public static String toHex​(byte[] b)
        Like DataHelper.toHexString but ensures no loss of leading zero bytes
        Since:
        0.8.4
      • getString

        public String getString​(String key)
        lang in routerconsole.lang property, else current locale
      • getString

        public String getString​(String s,
                                Object o)
        translate a string with a parameter This is a lot more expensive than getString(s, ctx), so use sparingly.
        Parameters:
        s - string to be translated containing {0} The {0} will be replaced by the parameter. Single quotes must be doubled, i.e. ' -> '' in the string.
        o - parameter, not translated. To translate parameter also, use _t("foo {0} bar", _t("baz")) Do not double the single quotes in the parameter. Use autoboxing to call with ints, longs, floats, etc.
      • getString

        public String getString​(int n,
                                String s,
                                String p)
        ngettext @since 0.7.14