org.klomp.snark
Class I2PSnarkUtil

java.lang.Object
  extended by 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
static int DEFAULT_MAX_UP_BW
           
static String DEFAULT_OPENTRACKERS
           
static int DEFAULT_STARTUP_DELAY
           
static boolean DEFAULT_USE_DHT
           
static boolean DEFAULT_USE_OPENTRACKERS
           
static int MAX_CONNECTIONS
           
static String PROP_MAX_BW
           
 
Constructor Summary
I2PSnarkUtil(I2PAppContext ctx)
           
 
Method Summary
 boolean configured()
           
 boolean connect()
          Connect to the router, if we aren't already
(package private)  I2PSocket connect(PeerID peer)
          connect to the given destination
 boolean connected()
           
 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)
           
 I2PAppContext getContext()
           
(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()
           
 boolean getFilesPublic()
           
 String getI2CPHost()
           
 Map<String,String> getI2CPOptions()
           
 int getI2CPPort()
           
 int getMaxConnections()
           
 int getMaxUpBW()
           
 int getMaxUploaders()
           
(package private)  Destination getMyDestination()
           
 List<String> getOpenTrackers()
          List of open trackers to use as backups
(package private)  String getOurIPString()
           
 I2PServerSocket getServerSocket()
           
 I2PSocketManager getSocketManager()
          For FetchAndAdd
 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}
 File getTempDir()
           
 boolean isConnecting()
           
 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 setFilesPublic(boolean yes)
           
 void setI2CPConfig(String i2cpHost, int i2cpPort, Map opts)
           
 void setMaxConnections(int limit)
           
 void setMaxUpBW(int limit)
          This updates the session options and tells the router
 void setMaxUploaders(int limit)
           
 void setOpenTrackers(List<String> ot)
           
 void setStartupDelay(int minutes)
           
 void setUseDHT(boolean yes)
           
 void setUseOpenTrackers(boolean yes)
           
 boolean shouldUseDHT()
           
 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

DEFAULT_USE_OPENTRACKERS

public static final boolean DEFAULT_USE_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

PROP_MAX_BW

public static final String PROP_MAX_BW
See Also:
Constant Field Values

DEFAULT_USE_DHT

public static final boolean DEFAULT_USE_DHT
See Also:
Constant Field Values
Constructor Detail

I2PSnarkUtil

public I2PSnarkUtil(I2PAppContext ctx)
Method Detail

getContext

public I2PAppContext getContext()
Since:
0.9.1

configured

public boolean configured()

setI2CPConfig

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

setMaxUploaders

public void setMaxUploaders(int limit)

setMaxUpBW

public void setMaxUpBW(int limit)
This updates the session options 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()

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


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

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


setOpenTrackers

public void setOpenTrackers(List<String> ot)
Parameters:
ot - non-null

getOpenTrackers

public List<String> getOpenTrackers()
List of open trackers to use as backups

Returns:
non-null, possibly unmodifiable, empty if disabled

setUseOpenTrackers

public void setUseOpenTrackers(boolean yes)

shouldUseOpenTrackers

public boolean shouldUseOpenTrackers()

setUseDHT

public void setUseDHT(boolean yes)
Since:
DHT

shouldUseDHT

public boolean shouldUseDHT()
Since:
DHT

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