Class I2PSnarkUtil

java.lang.Object
org.klomp.snark.I2PSnarkUtil
All Implemented Interfaces:
I2PSocketManager.DisconnectListener

public class I2PSnarkUtil extends Object implements I2PSocketManager.DisconnectListener
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 Details

  • Constructor Details

  • Method Details

    • getContext

      public I2PAppContext getContext()
      Since:
      0.9.1
    • 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
    • sessionDisconnected

      public void sessionDisconnected()
      DisconnectListener interface
      Specified by:
      sessionDisconnected in interface I2PSocketManager.DisconnectListener
      Since:
      0.9.53
    • 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
    • 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. 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
    • getServerSocket

      public I2PServerSocket getServerSocket()
    • getOurIPString

      public String getOurIPString()
      Full Base64 of Destination
    • 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
    • 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(String s, Object o, Object o2)
      {0} and {1}
    • getString

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