net.i2p.router
public class Router extends Object
Modifier and Type | Field and Description |
---|---|
static char |
CAPABILITY_BW12 |
static char |
CAPABILITY_BW128 |
static char |
CAPABILITY_BW256 |
static char |
CAPABILITY_BW32 |
static char |
CAPABILITY_BW64 |
static char |
CAPABILITY_NEW_TUNNEL
Deprecated.
unused
|
static char |
CAPABILITY_REACHABLE |
static char |
CAPABILITY_UNREACHABLE |
static long |
CLOCK_FUDGE_FACTOR
let clocks be off by 1 minute
|
static int |
DEFAULT_SHARE_PERCENTAGE |
static String |
DNS_CACHE_TIME |
static int |
EXIT_GRACEFUL
private static final void testAppendLog() {
StringBuilder buf = new StringBuilder(1024);
Router.appendLogMessage(buf, "hi\nhow are you\nh0h0h0");
System.out.println("line: [" + buf.toString() + "]");
buf.setLength(0);
Router.appendLogMessage(buf, "\nfine thanks\nh0h0h0");
System.out.println("line: [" + buf.toString() + "]");
buf.setLength(0);
Router.appendLogMessage(buf, "liar\nblah blah\n");
System.out.println("line: [" + buf.toString() + "]");
buf.setLength(0);
Router.appendLogMessage(buf, "\n");
System.out.println("line: [" + buf.toString() + "]");
buf.setLength(0);
Router.appendLogMessage(buf, "");
System.out.println("line: [" + buf.toString() + "]");
buf.setLength(0);
Router.appendLogMessage(buf, ".........10........20........30........40........50........6");
System.out.println("line: [" + buf.toString() + "]");
buf.setLength(0);
Router.appendLogMessage(buf, ".........10........\n20........30........40........50........6");
System.out.println("line: [" + buf.toString() + "]");
buf.setLength(0);
Router.appendLogMessage(buf, ".........10........20\n........30........40........50........6");
System.out.println("line: [" + buf.toString() + "]");
buf.setLength(0);
Router.appendLogMessage(buf, ".........10.......\n.20........30........40........50........6");
System.out.println("line: [" + buf.toString() + "]");
buf.setLength(0);
Router.appendLogMessage(buf, "\n.........10........20........30........40........50........6");
System.out.println("line: [" + buf.toString() + "]");
buf.setLength(0);
}
|
static int |
EXIT_GRACEFUL_RESTART |
static int |
EXIT_HARD |
static int |
EXIT_HARD_RESTART |
static int |
EXIT_OOM |
(package private) static String |
IDENTLOG |
(package private) static long |
LIVELINESS_DELAY |
static int |
NETWORK_ID
used to differentiate routerInfo files on different networks
|
static String |
PROP_BANDWIDTH_SHARE_PERCENTAGE |
static String |
PROP_CONFIG_FILE |
static String |
PROP_DYNAMIC_KEYS |
static String |
PROP_FORCE_BWCLASS |
static String |
PROP_FORCE_UNREACHABLE |
static String |
PROP_HIDDEN
this puts an 'H' in your routerInfo
|
static String |
PROP_HIDDEN_HIDDEN
this does not put an 'H' in your routerInfo
|
static String |
PROP_INFO_FILENAME |
static String |
PROP_INFO_FILENAME_DEFAULT |
static String |
PROP_KEYS_FILENAME |
static String |
PROP_KEYS_FILENAME_DEFAULT |
static String |
PROP_SHUTDOWN_IN_PROGRESS |
Object |
routerInfoFileLock |
static String |
UPDATE_FILE |
Constructor and Description |
---|
Router() |
Router(Properties envProps) |
Router(String configFilename) |
Router(String configFilename,
Properties envProps) |
Modifier and Type | Method and Description |
---|---|
void |
addCapabilities(RouterInfo ri) |
void |
cancelGracefulShutdown()
Cancel any prior request to shut the router down gracefully.
|
Certificate |
createCertificate() |
int |
get15sRate() |
int |
get15sRate(boolean outboundOnly) |
int |
get15sRateIn() |
int |
get1mRate() |
int |
get1mRate(boolean outboundOnly) |
int |
get1mRateIn() |
int |
get1sRate() |
int |
get1sRate(boolean outboundOnly) |
int |
get1sRateIn() |
int |
get5mRate() |
int |
get5mRate(boolean outboundOnly) |
String |
getConfigFilename() |
Properties |
getConfigMap() |
String |
getConfigSetting(String name) |
Set |
getConfigSettings() |
RouterContext |
getContext() |
boolean |
getHigherVersionSeen()
True if the router has tried to communicate with another router who is running a higher
incompatible protocol version.
|
boolean |
getKillVMOnEnd()
Deprecated.
unused
|
RouterInfo |
getRouterInfo() |
double |
getSharePercentage()
What fraction of the bandwidth specified in our bandwidth limits should
we allow to be consumed by participating tunnels?
|
long |
getShutdownTimeRemaining()
How long until the graceful shutdown will kill us?
|
long |
getUptime()
wall clock uptime
|
long |
getWhenStarted() |
boolean |
gracefulShutdownInProgress() |
boolean |
isAlive() |
boolean |
isHidden() |
void |
killKeys() |
static void |
main(String[] args) |
void |
readConfig()
This updates the config with all settings found in the file.
|
void |
rebuildNewIdentity()
Rebuild a new identity the hard way - delete all of our old identity
files, then reboot the router.
|
void |
rebuildRouterInfo()
Rebuild and republish our routerInfo since something significant
has changed.
|
void |
rebuildRouterInfo(boolean blockingRebuild) |
void |
removeConfigSetting(String name) |
void |
renderStatusHTML(Writer out)
this is for oldconsole.jsp, pretty much unused except as a way to get memory info,
so let's comment out the rest, it is available elsewhere, and we don't really
want to spend a minute rendering a multi-megabyte page in memory.
|
void |
restart()
A "soft" restart, primarily of the comm system, after
a port change or large step-change in system time.
|
(package private) void |
runRouter() |
boolean |
saveConfig()
Save the current config options (returning true if save was
successful, false otherwise)
Note that unlike DataHelper.storeProps(),
this does escape the \r or \n that are unescaped in DataHelper.loadProps().
|
int |
scheduledGracefulExitCode()
What exit code do we plan on using when we shut down (or -1, if there isn't a graceful shutdown planned)
|
void |
setConfigFilename(String filename) |
void |
setConfigSetting(String name,
String value) |
void |
setHigherVersionSeen(boolean seen) |
void |
setKillVMOnEnd(boolean shouldDie)
Configure the router to kill the JVM when the router shuts down, as well
as whether to explicitly halt the JVM during the hard fail process.
|
void |
setRouterInfo(RouterInfo info)
Caller must ensure info is valid - no validation done here
|
void |
shutdown(int exitCode) |
void |
shutdownGracefully()
Call this if we want the router to kill itself as soon as we aren't
participating in any more tunnels (etc).
|
void |
shutdownGracefully(int exitCode)
Call this with EXIT_HARD or EXIT_HARD_RESTART for a non-blocking,
hard, non-graceful shutdown with a brief delay to allow a UI response
|
public final Object routerInfoFileLock
public static final String PROP_CONFIG_FILE
public static final long CLOCK_FUDGE_FACTOR
public static final int NETWORK_ID
public static final String PROP_HIDDEN
public static final String PROP_HIDDEN_HIDDEN
public static final String PROP_DYNAMIC_KEYS
public static final String PROP_INFO_FILENAME
public static final String PROP_INFO_FILENAME_DEFAULT
public static final String PROP_KEYS_FILENAME
public static final String PROP_KEYS_FILENAME_DEFAULT
public static final String PROP_SHUTDOWN_IN_PROGRESS
public static final String DNS_CACHE_TIME
public static final char CAPABILITY_BW12
public static final char CAPABILITY_BW32
public static final char CAPABILITY_BW64
public static final char CAPABILITY_BW128
public static final char CAPABILITY_BW256
public static final String PROP_FORCE_BWCLASS
public static final char CAPABILITY_REACHABLE
public static final char CAPABILITY_UNREACHABLE
public static final String PROP_FORCE_UNREACHABLE
public static final char CAPABILITY_NEW_TUNNEL
static final String IDENTLOG
public static final int EXIT_GRACEFUL
public static final int EXIT_HARD
public static final int EXIT_OOM
public static final int EXIT_HARD_RESTART
public static final int EXIT_GRACEFUL_RESTART
public static final String UPDATE_FILE
static final long LIVELINESS_DELAY
public static final String PROP_BANDWIDTH_SHARE_PERCENTAGE
public static final int DEFAULT_SHARE_PERCENTAGE
public Router()
public Router(Properties envProps)
public Router(String configFilename)
public Router(String configFilename, Properties envProps)
public void setKillVMOnEnd(boolean shouldDie)
public boolean getKillVMOnEnd()
public String getConfigFilename()
public void setConfigFilename(String filename)
public void removeConfigSetting(String name)
public Set getConfigSettings()
public Properties getConfigMap()
public RouterInfo getRouterInfo()
public void setRouterInfo(RouterInfo info)
public boolean getHigherVersionSeen()
public void setHigherVersionSeen(boolean seen)
public long getWhenStarted()
public long getUptime()
public RouterContext getContext()
void runRouter()
public void readConfig()
public boolean isAlive()
public void rebuildRouterInfo()
public void rebuildRouterInfo(boolean blockingRebuild)
public void addCapabilities(RouterInfo ri)
public boolean isHidden()
public Certificate createCertificate()
public void killKeys()
public void rebuildNewIdentity()
public void renderStatusHTML(Writer out) throws IOException
IOException
public void shutdown(int exitCode)
public void shutdownGracefully()
shutdown(int)
. If you want to cancel
the graceful shutdown (prior to actual shutdown ;), call
cancelGracefulShutdown()
.public void shutdownGracefully(int exitCode)
public void cancelGracefulShutdown()
public int scheduledGracefulExitCode()
public boolean gracefulShutdownInProgress()
public long getShutdownTimeRemaining()
public boolean saveConfig()
public void restart()
public static void main(String[] args)
public double getSharePercentage()
public int get1sRate()
public int get1sRate(boolean outboundOnly)
public int get1sRateIn()
public int get15sRate()
public int get15sRate(boolean outboundOnly)
public int get15sRateIn()
public int get1mRate()
public int get1mRate(boolean outboundOnly)
public int get1mRateIn()
public int get5mRate()
public int get5mRate(boolean outboundOnly)