Modifier and Type | Field and Description |
---|---|
protected static String |
DEFAULT_DATAGRAM_HOST |
protected static String |
DEFAULT_DATAGRAM_PORT |
protected static int |
DEFAULT_DATAGRAM_PORT_INT |
(package private) static String |
DEFAULT_SAM_CONFIGFILE |
static String |
DEFAULT_SAM_KEYFILE |
protected static String |
DEFAULT_TCP_HOST |
protected static String |
DEFAULT_TCP_PORT |
static String |
PROP_AUTH |
static String |
PROP_DATAGRAM_HOST |
static String |
PROP_DATAGRAM_PORT |
static String |
PROP_PW_PREFIX |
static String |
PROP_PW_SUFFIX |
static String |
PROP_TCP_HOST |
static String |
PROP_TCP_PORT |
Constructor and Description |
---|
SAMBridge(I2PAppContext context,
ClientAppManager mgr,
String[] args)
For ClientApp interface.
|
SAMBridge(String listenHost,
int listenPort,
boolean isSSL,
Properties i2cpProps,
String persistFile,
File configFile)
Build a new SAM bridge.
|
Modifier and Type | Method and Description |
---|---|
void |
addKeystream(String name,
String stream)
Specify that the given keystream should be used for the given name
|
String |
getDisplayName()
The display name of the ClientApp, used in user interfaces.
|
String |
getKeystream(String name)
Retrieve the I2P private keystream for the given name, formatted
as a base64 string (Destination+PrivateKey+SessionPrivateKey, as I2CP
stores it).
|
String |
getName()
The generic name of the ClientApp, used for registration,
e.g.
|
ClientAppState |
getState()
The current state of the ClientApp.
|
(package private) SAMv3DatagramServer |
getV3DatagramServer(Properties props)
Was a static singleton, now a singleton for this bridge.
|
static void |
main(String[] args)
Usage:
|
void |
register(Handler handler)
Handlers must call on startup
|
void |
run() |
void |
saveConfig() |
void |
shutdown(String[] args)
As of 0.9.20, stops running handlers and sessions.
|
void |
startup()
Do not take a long time.
|
void |
unregister(Handler handler)
Handlers must call on stop
|
public static final String DEFAULT_SAM_KEYFILE
static final String DEFAULT_SAM_CONFIGFILE
public static final String PROP_TCP_HOST
public static final String PROP_TCP_PORT
public static final String PROP_AUTH
public static final String PROP_PW_PREFIX
public static final String PROP_PW_SUFFIX
protected static final String DEFAULT_TCP_HOST
protected static final String DEFAULT_TCP_PORT
public static final String PROP_DATAGRAM_HOST
public static final String PROP_DATAGRAM_PORT
protected static final String DEFAULT_DATAGRAM_HOST
protected static final int DEFAULT_DATAGRAM_PORT_INT
protected static final String DEFAULT_DATAGRAM_PORT
public SAMBridge(I2PAppContext context, ClientAppManager mgr, String[] args) throws Exception
mgr
- may be nullargs
- non-nullException
- on bad argspublic SAMBridge(String listenHost, int listenPort, boolean isSSL, Properties i2cpProps, String persistFile, File configFile)
listenHost
- hostname to listen for SAM connections on ("0.0.0.0" for all)listenPort
- port number to listen for SAM connections oni2cpProps
- set of I2CP properties for finding and communicating with the routerpersistFile
- location to store/load named keys to/fromRuntimeException
- if a server socket can't be openedpublic String getKeystream(String name)
name
- Name of the destinationpublic void addKeystream(String name, String stream)
name
- Name of the destinationstream
- Name of the streampublic void register(Handler handler)
public void unregister(Handler handler)
SAMv3DatagramServer getV3DatagramServer(Properties props) throws IOException
props
- non-null instantiate and start server if it doesn't existIOException
- if can't bind to host/port, or if different than existingpublic void startup() throws IOException
ClientApp
startup
in interface ClientApp
IOException
public void shutdown(String[] args)
public ClientAppState getState()
ClientApp
public String getName()
ClientApp
public String getDisplayName()
ClientApp
getDisplayName
in interface ClientApp
public static void main(String[] args)
SAMBridge [ keyfile [listenHost ] listenPort [ name=val ]* ]or:
SAMBridge [ name=val ]*name=val options are passed to the I2CP code to build a session, allowing the bridge to specify an alternate I2CP host and port, tunnel depth, etc.
args
- [ keyfile [ listenHost ] listenPort [ name=val ]* ]public void saveConfig() throws IOException
IOException