org.klomp.snark

## Class I2PSnarkUtil

- java.lang.Object
- - org.klomp.snark.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)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_MAX_UP_BW`
    `static String` | `DEFAULT_OPENTRACKERS`
    `static int` | `DEFAULT_STARTUP_DELAY`
    `static boolean` | `DEFAULT_USE_OPENTRACKERS`
    `static int` | `MAX_CONNECTIONS`
    `static String` | `PROP_OPENTRACKERS`
    `static String` | `PROP_USE_OPENTRACKERS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `I2PSnarkUtil(I2PAppContext ctx)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `configured()` public void setProxy(String host, int port) { if ( (host != null) && (port > 0) ) { _shouldProxy = true; _proxyHost = host; _proxyPort = port; } else { _shouldProxy = false; _proxyHost = null; _proxyPort = -1; } _configured = true; }
    `boolean` | `connect()` Connect to the router, if we aren't already
    `(package private) I2PSocket` | `connect(PeerID peer)` connect to the given destination
    `boolean` | `connected()`
    `(package private) void` | `debug(String msg, int snarkDebugLevel)` hook between snark's logger and an i2p log
    `(package private) void` | `debug(String msg, int snarkDebugLevel, Throwable t)`
    `void` | `disconnect()` Destroy the destination itself
    `File` | `get(String url)` fetch the given URL, returning the file it is stored in, or null on error
    `File` | `get(String url, boolean rewrite)`
    `File` | `get(String url, boolean rewrite, int retries)`
    `File` | `get(String url, int retries)`
    `(package private) Destination` | `getDestination(String ip)` Base64 Hash or Hash.i2p or name.i2p using naming service
    `(package private) static Destination` | `getDestinationFromBase64(String ip)` Base64 only - static (no naming service)
    `DHT` | `getDHT()`
    `String` | `getEepProxyHost()`
    `int` | `getEepProxyPort()`
    `boolean` | `getEepProxySet()`
    `String` | `getI2CPHost()`
    `Map<String,String>` | `getI2CPOptions()`
    `int` | `getI2CPPort()`
    `int` | `getMaxConnections()`
    `int` | `getMaxUpBW()`
    `int` | `getMaxUploaders()`
    `(package private) Destination` | `getMyDestination()`
    `List<String>` | `getOpenTrackers()` sorted map of name to announceURL=baseURL
    `String` | `getOpenTrackerString()`
    `(package private) String` | `getOurIPString()`
    `I2PServerSocket` | `getServerSocket()`
    `int` | `getStartupDelay()`
    `String` | `getString(int n, String s, String p)` ngettext @since 0.7.14
    `String` | `getString(String key)` lang in routerconsole.lang property, else current locale
    `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.
    `String` | `getString(String s, Object o, Object o2)` {0} and {1}
    `String` | `lookup(String name)`
    `(package private) 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
    `void` | `setI2CPConfig(String i2cpHost, int i2cpPort, Map opts)`
    `void` | `setMaxConnections(int limit)`
    `void` | `setMaxUpBW(int limit)`
    `void` | `setMaxUploaders(int limit)`
    `void` | `setOpenTrackerString(String ot)`
    `void` | `setStartupDelay(int minutes)`
    `void` | `setUseOpenTrackers(boolean yes)`
    `boolean` | `shouldUseOpenTrackers()`
    `static String` | `toHex(byte[] b)` Like DataHelper.toHexString but ensures no loss of leading zero bytes

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_STARTUP_DELAY

          public static final int DEFAULT_STARTUP_DELAY

      See Also:
        Constant Field Values

    - #### PROP_USE_OPENTRACKERS

          public static final String PROP_USE_OPENTRACKERS

      See Also:
        Constant Field Values

    - #### DEFAULT_USE_OPENTRACKERS

          public static final boolean DEFAULT_USE_OPENTRACKERS

      See Also:
        Constant Field Values

    - #### PROP_OPENTRACKERS

          public static final String PROP_OPENTRACKERS

      See Also:
        Constant Field Values

    - #### DEFAULT_OPENTRACKERS

          public static final String DEFAULT_OPENTRACKERS

      See Also:
        Constant Field Values

    - #### DEFAULT_MAX_UP_BW

          public static final int DEFAULT_MAX_UP_BW

      See Also:
        Constant Field Values

    - #### MAX_CONNECTIONS

          public static final int MAX_CONNECTIONS

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### I2PSnarkUtil

          public I2PSnarkUtil(I2PAppContext ctx)

  - ### Method Detail

    - #### configured

          public boolean configured()

      public void setProxy(String host, int port) { if ( (host != null) && (port > 0) ) { _shouldProxy = true; _proxyHost = host; _proxyPort = port; } else { _shouldProxy = false; _proxyHost = null; _proxyPort = -1; } _configured = true; }

    - #### setI2CPConfig

          public void setI2CPConfig(String i2cpHost,
                           int i2cpPort,
                           Map opts)

    - #### setMaxUploaders

          public void setMaxUploaders(int limit)

    - #### setMaxUpBW

          public void setMaxUpBW(int limit)

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

    - #### 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()

    - #### 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()

    - #### disconnect

          public void disconnect()

      Destroy the destination itself

    - #### connect

          I2PSocket connect(PeerID peer)
                      throws IOException

      connect to the given destination
      Throws:
        `IOException`

    - #### get

          public File get(String url)

      fetch the given URL, returning the file it is stored in, or null on error

    - #### get

          public File get(String url,
                 boolean rewrite)

    - #### get

          public File get(String url,
                 int retries)

    - #### get

          public File get(String url,
                 boolean rewrite,
                 int retries)

    - #### getServerSocket

          public I2PServerSocket getServerSocket()

    - #### getOurIPString

          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

    - #### lookup

          public String lookup(String name)

    - #### 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

    - #### setOpenTrackerString

          public void setOpenTrackerString(String ot)

      Parameters:
        `ot` - non-null

    - #### getOpenTrackerString

          public String getOpenTrackerString()

    - #### getOpenTrackers

          public List<String> getOpenTrackers()

      sorted map of name to announceURL=baseURL

    - #### setUseOpenTrackers

          public void setUseOpenTrackers(boolean yes)

    - #### shouldUseOpenTrackers

          public boolean shouldUseOpenTrackers()

    - #### toHex

          public static String toHex(byte[] b)

      Like DataHelper.toHexString but ensures no loss of leading zero bytes
      Since:
        0.8.4

    - #### debug

          void debug(String msg,
                   int snarkDebugLevel)

      hook between snark's logger and an i2p log

    - #### debug

          void debug(String msg,
                   int snarkDebugLevel,
                   Throwable t)

    - #### 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 tranlslate parameter also, use _("foo {0} bar", _("baz")) Do not double the single quotes in the parameter. Use autoboxing to call with ints, longs, floats, etc.

    - #### getString

          public String getString(String s,
                         Object o,
                         Object o2)

      {0} and {1}

    - #### getString

          public String getString(int n,
                         String s,
                         String p)

      ngettext @since 0.7.14