added the eepProxy and harvester as part of the default clientApps run on startup

(with a commented out set of lines for a heartbeat client/server)
updated -cp lines accordingly
use javaw for windows users (so they can close the damn dos boxes)
toss the default logger logs into logs/ (say that three times fast)
formatting
This commit is contained in:
jrandom
2004-04-20 07:32:21 +00:00
committed by zzz
parent 180d39534c
commit a51e0c26e5
9 changed files with 652 additions and 440 deletions

View File

@ -114,14 +114,11 @@ public abstract class Install {
createLoggerConfig(); createLoggerConfig();
createStartScript(); createStartScript();
createReseedScript(); createReseedScript();
createEepProxyScript();
//createScripts("startSquid.sh", "startSquid.bat", 5555, "squid.i2p", "log-squid-#.txt", "Squid Proxy", "Squid proxying scripts written to startSquid");
createScripts("startIrcProxy.sh", "startIrcProxy.bat", 6668, "irc.duck.i2p", "log-irc-#.txt", "IRC Proxy", "IRC proxying scripts written to startIrcProxy", "Starting IRC proxy (when you see Ready! you can connect your IRC client to localhost:6668)"); createScripts("startIrcProxy.sh", "startIrcProxy.bat", 6668, "irc.duck.i2p", "log-irc-#.txt", "IRC Proxy", "IRC proxying scripts written to startIrcProxy", "Starting IRC proxy (when you see Ready! you can connect your IRC client to localhost:6668)");
//createScripts("startI2PCVSProxy.sh", "startI2PCVSProxy.bat", 2401, "i2pcvs.i2p", "log-i2pcvs-#.txt", "CVS Proxy", "Proxying scripts for I2P's CVS server written to startCVSProxy"); //createScripts("startI2PCVSProxy.sh", "startI2PCVSProxy.bat", 2401, "i2pcvs.i2p", "log-i2pcvs-#.txt", "CVS Proxy", "Proxying scripts for I2P's CVS server written to startCVSProxy");
// only pulling them temporarily, duck, until the network is // only pulling them temporarily, duck, until the network is
// reliable enough // reliable enough
//createScripts("startJabber.sh", "startJabber.bat", 5222, "jabber.duck.i2p", "log-jabber-#.txt", "Jabber Proxy", "Squid proxying scripts written to startSquid"); //createScripts("startJabber.sh", "startJabber.bat", 5222, "jabber.duck.i2p", "log-jabber-#.txt", "Jabber Proxy", "Squid proxying scripts written to startSquid");
//createScripts("startNntpProxy.sh", "startNntpProxy.bat", 1119, "nntp.duck.i2p", "log-nntp-#.txt", "NNTP Proxy","NNTP proxying scripts written to startNntpProxy"); //createScripts("startNntpProxy.sh", "startNntpProxy.bat", 1119, "nntp.duck.i2p", "log-nntp-#.txt", "NNTP Proxy","NNTP proxying scripts written to startNntpProxy");
createSeedNodes(); createSeedNodes();
copyLibraries(); copyLibraries();
@ -140,8 +137,7 @@ public abstract class Install {
private void askQuestions() { private void askQuestions() {
try { try {
InputStream in = InputStream in = Install.class.getResourceAsStream("/install.config");
Install.class.getResourceAsStream("/install.config");
_p = new Properties(); _p = new Properties();
_p.load(in); _p.load(in);
in.close(); in.close();
@ -222,22 +218,19 @@ public abstract class Install {
"Lets try again"); "Lets try again");
} }
} else { } else {
boolean create = confirmOption boolean create = confirmOption("Target directory " + f.getAbsolutePath() +
("Target directory " + f.getAbsolutePath() +
" does not exist - create? ", false); " does not exist - create? ", false);
if (!create) { if (!create) {
showOptError("Lets try that again"); showOptError("Lets try that again");
} else { } else {
boolean created = f.mkdirs(); boolean created = f.mkdirs();
if (created) { if (created) {
showOptError("Target directory " + showOptError("Target directory " + f.getAbsolutePath() +
f.getAbsolutePath() +
" created"); " created");
return f; return f;
} else { } else {
showOptError("Failed to create the "+ showOptError("Failed to create the "+
"directory. Lets choose "+ "directory. Lets choose another.");
"another.");
} }
} }
} }
@ -296,8 +289,7 @@ public abstract class Install {
txt.append(s.substring(0,ind)); txt.append(s.substring(0,ind));
String temp = s.substring(ind+2); String temp = s.substring(ind+2);
ind = temp.indexOf("##"); ind = temp.indexOf("##");
if (ind == -1) throw new RuntimeException if (ind == -1) throw new RuntimeException("Incorrect info_spliced param");
("Incorrect info_spliced param");
s=temp.substring(ind+2); s=temp.substring(ind+2);
Object value = _answers.get(temp.substring(0,ind)); Object value = _answers.get(temp.substring(0,ind));
if (value == null) { if (value == null) {
@ -338,9 +330,7 @@ public abstract class Install {
private void useTemplate(String templateName, File destFile) { private void useTemplate(String templateName, File destFile) {
try { try {
BufferedWriter bw = new BufferedWriter(new FileWriter(destFile)); BufferedWriter bw = new BufferedWriter(new FileWriter(destFile));
BufferedReader br = new BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(Install.class.getResourceAsStream(templateName)));
(new InputStreamReader
(Install.class.getResourceAsStream(templateName)));
String line; String line;
while ((line = br.readLine()) != null) { while ((line = br.readLine()) != null) {
if (!line.startsWith("####")) { if (!line.startsWith("####")) {
@ -488,7 +478,8 @@ public abstract class Install {
out.close(); out.close();
showStatus("Installed file " + destFile.getName() + " in " + destFile.getParent()); showStatus("Installed file " + destFile.getName() + " in " + destFile.getParent());
} catch (IOException ioe) { } catch (IOException ioe) {
showStatus("Error saving " + name + " to " + destFile.getAbsolutePath() + ": " + ioe.getMessage()); showStatus("Error saving " + name + " to " + destFile.getAbsolutePath()
+ ": " + ioe.getMessage());
} }
} }
@ -498,8 +489,7 @@ public abstract class Install {
StringBuffer buf = new StringBuffer(); StringBuffer buf = new StringBuffer();
if (!verbose) { if (!verbose) {
// overrides for particularly chatty classes // overrides for particularly chatty classes
_answers.put("_logger_notverbose", _answers.put("_logger_notverbose", "logger.record.net.i2p.router.transport.Triv=ERROR"+NL+
"logger.record.net.i2p.router.transport.Triv=ERROR"+NL+
"logger.record.net.i2p.router.transport.Band=ERROR"+NL+ "logger.record.net.i2p.router.transport.Band=ERROR"+NL+
"logger.record.net.i2p.crypto=ERROR" +NL+ "logger.record.net.i2p.crypto=ERROR" +NL+
"logger.record.net.i2p.crypto.DH=ERROR"); "logger.record.net.i2p.crypto.DH=ERROR");
@ -508,11 +498,16 @@ public abstract class Install {
} }
} }
private void createScripts(String unixName, String windowsName, int listenPort, String targetDest, String logfilePattern, String windowTitle, String message, String scriptMessage) { private void createScripts(String unixName, String windowsName, int listenPort,
createScripts(unixName, windowsName, "client "+listenPort+" "+targetDest, logfilePattern, windowTitle, message, scriptMessage); String targetDest, String logfilePattern, String windowTitle,
String message, String scriptMessage) {
createScripts(unixName, windowsName, "client "+listenPort+" "+targetDest,
logfilePattern, windowTitle, message, scriptMessage);
} }
private void createScripts(String unixName, String windowsName, String command, String logfilePattern, String windowTitle, String message, String scriptMessage) { private void createScripts(String unixName, String windowsName, String command,
String logfilePattern, String windowTitle, String message,
String scriptMessage) {
_answers.put("_scripts_port", ""+_i2cpPort); _answers.put("_scripts_port", ""+_i2cpPort);
_answers.put("_scripts_cmd", command); _answers.put("_scripts_cmd", command);
_answers.put("_scripts_logname", logfilePattern); _answers.put("_scripts_logname", logfilePattern);
@ -529,17 +524,6 @@ public abstract class Install {
showStatus(message); showStatus(message);
} }
private void createEepProxyScript() {
StringBuffer buf = new StringBuffer(512);
buf.append("Eepsite proxying scripts written to startEepProxy").append(NL);
buf.append("IMPORTANT: While this installer packages the latest hosts.txt file available at the time ($Date: 2004/03/25 00:56:23 $), ").append(NL);
buf.append("a more recently updated one may be available. You can check for updates by fetching the file ").append(NL);
buf.append("http://i2p.net/i2p/hosts.txt and saving it in ").append(_installDir.getAbsolutePath()).append(NL);
buf.append("Or, of course, you can edit and update hosts.txt yourself to include mappings of your liking").append(NL);
createScripts("startEepProxy.sh", "startEepProxy.bat", "httpclient 4444", "log-eepProxy-#.txt", "Eep Proxy", buf.toString(), "Starting EepProxy (when you see Ready, set your browsers HTTP proxy to localhost:4444)");
}
private void createReseedScript() { private void createReseedScript() {
if (_isWindows) { if (_isWindows) {
File windowsFile = new File(_installDir, "reseed.bat"); File windowsFile = new File(_installDir, "reseed.bat");

View File

@ -0,0 +1,155 @@
# Configure what data points the netmonitor app will harvest from
# the network database.
#
# You probably don't want to edit this.
#
statGroup.0.name=dropped
statGroup.0.detail.0.name=num dropped jobs (minute)
statGroup.0.detail.0.option=stat_jobQueue.droppedJobs.60m
statGroup.0.detail.0.field=3
statGroup.0.detail.1.name=num dropped jobs (hour)
statGroup.0.detail.1.option=stat_jobQueue.droppedJobs.60h
statGroup.0.detail.1.field=3
statGroup.0.detail.2.name=num dropped messages (minute)
statGroup.0.detail.2.option=stat_inNetPool.dropped.60m
statGroup.0.detail.2.field=3
statGroup.0.detail.3.name=num dropped messages (hour)
statGroup.0.detail.3.option=stat_inNetPool.dropped.60h
statGroup.0.detail.3.field=3
#
statGroup.1.name=encryptTime
statGroup.1.detail.0.name=encryption time avg ms (minute)
statGroup.1.detail.0.option=stat_crypto.elGamal.encrypt.60s
statGroup.1.detail.0.field=0
statGroup.1.detail.1.name=num encryptions (minute)
statGroup.1.detail.1.option=stat_crypto.elGamal.encrypt.60s
statGroup.1.detail.1.field=7
statGroup.1.detail.2.name=encryption time avg ms (hour)
statGroup.1.detail.2.option=stat_crypto.elGamal.encrypt.60s
statGroup.1.detail.2.field=0
statGroup.1.detail.3.name=num encryptions (hour)
statGroup.1.detail.3.option=stat_crypto.elGamal.encrypt.60s
statGroup.1.detail.3.field=7
statGroup.1.detail.4.name=garlic fail (hour)
statGroup.1.detail.4.option=stat_crypto.garlic.decryptFail.60m
statGroup.1.detail.4.field=3
#
statGroup.2.name=processingTime
statGroup.2.detail.0.name=process time avg ms (minute)
statGroup.2.detail.0.option=stat_transport.sendProcessingTime.60s
statGroup.2.detail.0.field=0
statGroup.2.detail.1.name=process events (minute)
statGroup.2.detail.1.option=stat_transport.sendProcessingTime.60s
statGroup.2.detail.1.field=7
statGroup.2.detail.2.name=process time avg ms (hour)
statGroup.2.detail.2.option=stat_transport.sendProcessingTime.60m
statGroup.2.detail.2.field=0
statGroup.2.detail.3.name=process events(hour)
statGroup.2.detail.3.option=stat_transport.sendProcessingTime.60m
statGroup.2.detail.3.field=7
#
statGroup.3.name=jobInfo
statGroup.3.detail.0.name=job run avg ms (minute)
statGroup.3.detail.0.option=stat_jobQueue.jobRun.60s
statGroup.3.detail.0.field=0
statGroup.3.detail.1.name=job lag avg ms (minute)
statGroup.3.detail.1.option=stat_jobQueue.jobLag.60s
statGroup.3.detail.1.field=0
statGroup.3.detail.2.name=job count (minute)
statGroup.3.detail.2.option=stat_jobQueue.jobRun.60s
statGroup.3.detail.2.field=7
statGroup.3.detail.3.name=job run avg ms (hour)
statGroup.3.detail.3.option=stat_jobQueue.jobRun.60m
statGroup.3.detail.3.field=0
statGroup.3.detail.4.name=job lag avg ms (hour)
statGroup.3.detail.4.option=stat_jobQueue.jobLag.60m
statGroup.3.detail.4.field=0
statGroup.3.detail.5.name=job count (hour)
statGroup.3.detail.5.option=stat_jobQueue.jobRun.60m
statGroup.3.detail.5.field=7
#
statGroup.4.name=tunnels
statGroup.4.detail.0.name=participating tunnels count (5 minutes)
statGroup.4.detail.0.option=stat_tunnel.participatingTunnels.5m
statGroup.4.detail.0.field=0
statGroup.4.detail.1.name=participating tunnels joined (5 minutes)
statGroup.4.detail.1.option=stat_tunnel.participatingTunnels.5m
statGroup.4.detail.1.field=3
statGroup.4.detail.2.name=participating tunnels count (hour)
statGroup.4.detail.2.option=stat_tunnel.participatingTunnels.60m
statGroup.4.detail.2.field=0
statGroup.4.detail.3.name=participating tunnels joined (hour)
statGroup.4.detail.3.option=stat_tunnel.participatingTunnels.60m
statGroup.4.detail.3.field=3
statGroup.4.detail.4.name=unknown tunnels (hour)
statGroup.4.detail.4.option=stat_tunnel.unknownTunnelTimeLeft.60m
statGroup.4.detail.4.field=3
statGroup.4.detail.5.name=unknown tunnel time remaining (hour)
statGroup.4.detail.5.option=stat_tunnel.unknownTunnelTimeLeft.60m
statGroup.4.detail.5.field=0
statGroup.4.detail.6.name=unknown tunnels (day)
statGroup.4.detail.6.option=stat_tunnel.unknownTunnelTimeLeft.24h
statGroup.4.detail.6.field=3
statGroup.4.detail.7.name=unknown tunnel time remaining (day)
statGroup.4.detail.7.option=stat_tunnel.unknownTunnelTimeLeft.24h
statGroup.4.detail.7.field=0
#
statGroup.5.name=transfer
statGroup.5.detail.0.name=messages sent (5 minutes)
statGroup.5.detail.0.option=stat_transport.sendMessageSize.5m
statGroup.5.detail.0.field=7
statGroup.5.detail.1.name=send message size avg (5 minutes)
statGroup.5.detail.1.option=stat_transport.sendMessageSize.5m
statGroup.5.detail.1.field=0
statGroup.5.detail.2.name=messages sent (hour)
statGroup.5.detail.2.option=stat_transport.sendMessageSize.60m
statGroup.5.detail.2.field=7
statGroup.5.detail.3.name=send message size avg (hour)
statGroup.5.detail.3.option=stat_transport.sendMessageSize.60m
statGroup.5.detail.3.field=0
statGroup.5.detail.4.name=messages received (5 minutes)
statGroup.5.detail.4.option=stat_transport.receiveMessageSize.5m
statGroup.5.detail.4.field=7
statGroup.5.detail.5.name=receive message size avg (5 minutes)
statGroup.5.detail.5.option=stat_transport.receiveMessageSize.5m
statGroup.5.detail.5.field=0
statGroup.5.detail.6.name=messages received (hour)
statGroup.5.detail.6.option=stat_transport.receiveMessageSize.60m
statGroup.5.detail.6.field=7
statGroup.5.detail.7.name=receive message size avg (hour)
statGroup.5.detail.7.option=stat_transport.receiveMessageSize.60m
statGroup.5.detail.7.field=0
#
statGroup.6.name=networkDbHandling
statGroup.6.detail.0.name=lookups received (5 minutes)
statGroup.6.detail.0.option=stat_netDb.lookupsReceived.5m
statGroup.6.detail.0.field=3
statGroup.6.detail.1.name=lookups handled (5 minutes)
statGroup.6.detail.1.option=stat_netDb.lookupsHandled.5m
statGroup.6.detail.1.field=3
statGroup.6.detail.2.name=lookups matched (5 minutes)
statGroup.6.detail.2.option=stat_netDb.lookupsReceived.5m
statGroup.6.detail.2.field=3
statGroup.6.detail.3.name=lookups received (hour)
statGroup.6.detail.3.option=stat_netDb.lookupsReceived.60m
statGroup.6.detail.3.field=3
statGroup.6.detail.4.name=lookups handled (hour)
statGroup.6.detail.4.option=stat_netDb.lookupsHandled.60m
statGroup.6.detail.4.field=3
statGroup.6.detail.5.name=lookups matched (hour)
statGroup.6.detail.5.option=stat_netDb.lookupsReceived.60m
statGroup.6.detail.5.field=3
#
statGroup.7.name=networkDbActivity
statGroup.7.detail.0.name=lookups sent (hour)
statGroup.7.detail.0.option=stat_netDb.successPeers.60m
statGroup.7.detail.0.field=3
statGroup.7.detail.1.name=lookup peers (hour)
statGroup.7.detail.1.option=stat_netDb.successPeers.60m
statGroup.7.detail.1.field=0
statGroup.7.detail.2.name=db store sent (5 minutes)
statGroup.7.detail.2.option=stat_netDb.storeSent.5m
statGroup.7.detail.2.field=3
statGroup.7.detail.3.name=db store sent (hour)
statGroup.7.detail.3.option=stat_netDb.storeSent.60m
statGroup.7.detail.3.field=3

View File

@ -0,0 +1,36 @@
# where the router is located (default is localhost)
i2cpHost=localhost
# I2CP port for the router (default is 7654)
i2cpPort=7654
# How many hops we want the router to put in our tunnels (default is 2)
numHops=2
# where our private destination keys are located - if this doesn't exist,
# a new one will be created and saved there (by default, heartbeat.keys)
privateDestinationFile=heartbeat.keys
# where do we want to export the plain base64 of our destination?
publicDestinationFile=heartbeat.txt
##
# the following configures this client to send a heartbeat ping to the heartbeat
# server specified (which is being run on a fairly fast and reliable router, at
# least for the moment). If you want to run this test, uncomment the following
# lines and run the heartbeat engine (or if the heartbeat engine is configured
# to fire on router startup, you'll need to restart your router).
##
# full destination to the peer
peer.0.peer=8b8zBtmYGzl8pKkSJ6nYln6YEvJkKhsykwBtMaiBBizSHGsIqEG8O~oCQ62H-Yf7kw~H8292XhUOhN-hfMVPl6ulMybdV2utSPq5x2vq-1mczXWieIEBIxn3FOMguAdGb-Wu3ja2IThvwx62JgO9VSu2N5RktVkV~38XlkUmmA-f~JS5~rG~Ov-QIeFWPkyXpw-kPI2Yw6FZ5OdkXmXg0Kpb61pHXwMhAKT9YPw275Y6CvsgVKWhzHEqklwQ53jUwivn-NNXnEMWPI3jKmN3BNcJ~nGKWAHs-d5S375FDPq3pAde~-UutUWu~yEDG9xwmPyM0foS3tuUgyCkE7i4Io2VUAXAlXBKL4V7WNReHTnG2n2cC06KCebufcjUthtHzXQGi4kJBPmvKK3U7GyVDXUHeeBXKZjDcjZmOKS9Cgy2mbJ-L-ypYaUsXXWAW~2YqpMpQp22JoqNh8IIPaBmCjlw-ENfdRM0nKysWr6wULoYPaOC9Hi6GaXMPIIqMM6TAAAA
# where we'll write out the stat data
peer.0.statFile=heartbeatStat_30s_1kb.txt
# how many minutes of data we'll keep (3 hours)
peer.0.statDuration=180
# how often we'll write out the state (every 30 seconds)
peer.0.statFrequency=30
# how often we'll send the peer a ping (every 30 seconds)
peer.0.sendFrequency=30
# how large the pings and pongs will be (1KB)
peer.0.sendSize=1024
# what moving averages should we keep (1, 5, 30, and 120 minutes)
peer.0.averagePeriods=1 5 30 120
# moo
peer.0.comment=Test with localhost sending 1KB every 30 seconds

View File

@ -88,7 +88,7 @@ qs.0045.question=<none>
qs.0050.question=End of configuration. qs.0050.question=End of configuration.
libs.count=9 libs.count=13
libs.0001.name=i2p.jar libs.0001.name=i2p.jar
libs.0001.islib=true libs.0001.islib=true
libs.0002.name=i2ptunnel.jar libs.0002.name=i2ptunnel.jar
@ -107,3 +107,11 @@ libs.0008.name=mstreaming.jar
libs.0008.islib=true libs.0008.islib=true
libs.0009.name=sam.jar libs.0009.name=sam.jar
libs.0009.islib=true libs.0009.islib=true
libs.0010.name=heartbeat.jar
libs.0010.islib=true
libs.0011.name=netmonitor.jar
libs.0011.islib=true
libs.0012.name=harvester.config
libs.0012.islib=false
libs.0013.name=heartbeat.config
libs.0013.islib=false

View File

@ -15,7 +15,7 @@ logger.dateFormat=HH:mm:ss.SSS
# This is the log file name before being rotated # This is the log file name before being rotated
# '#' is replaced with the current log number for that day # '#' is replaced with the current log number for that day
# If # is not specified, logs are not rotated # If # is not specified, logs are not rotated
logger.logFileName=log-#.txt logger.logFileName=logs/log-#.txt
# Log file size: # Log file size:
# Maximum size of each log file: # Maximum size of each log file:

View File

@ -144,9 +144,38 @@ tunnels.tunnelDuration=600000
# jobs configuration parameter is a throttle, saying that if there are more than # jobs configuration parameter is a throttle, saying that if there are more than
# that many 'jobs' that want to run ASAP at any given time, additional jobs may # that many 'jobs' that want to run ASAP at any given time, additional jobs may
# be summarily dropped. That will reduce your load and cause others to reduce # be summarily dropped. That will reduce your load and cause others to reduce
# their dependence on you (further reducing your load). The default value of 20 # their dependence on you (further reducing your load). The default value of 40
# should be sufficient, but may be increased if desired. Less than 20 is not # should be sufficient, but may be increased if desired. Less than 20 is not
# recommended, as certain normal events can queue up 10 or so jobs at a time # recommended, as certain normal events can queue up 10 or so jobs at a time
# (all of which only take a few milliseconds). Leave this alone unless you know # (all of which only take a few milliseconds). Leave this alone unless you know
# what you're doing # what you're doing
router.maxWaitingJobs=20 router.maxWaitingJobs=40
#
# the remaining lines describe how you can get your router to fire up client
# applications it is up and running, all within the router's JVM. Uncomment the
# ones you want (revising the numbers and ports accordingly)
# Network monitor (harvests data from the network database and stores it under
# monitorData/, and with the netviewer GUI you can browse through its results)
clientApp.0.main=net.i2p.netmonitor.NetMonitor
clientApp.0.name=NetMonitor
clientApp.0.args=
# SAM bridge (a simplified socket based protocol for using I2P - listens on port 7656. see
# the specs at http://www.i2p.net/node/view/144 for more info)
clientApp.1.main=net.i2p.sam.SAMBridge
clientApp.1.name=SAMBridge
clientApp.1.args=0.0.0.0 7656 i2cp.tcp.host=localhost i2cp.tcp.port=##_router_i2cp_port##
# EepProxy (HTTP proxy that lets you browse both eepsites and the normal web via squid.i2p)
clientApp.2.main=net.i2p.i2ptunnel.I2PTunnel
clientApp.2.name=EepProxy
clientApp.2.args=-nogui -e "config localhost ##_router_i2cp_port##" -e "httpclient 4444"
# Heartbeat engine (uber-simple ping/pong system, configured in heartbeat.config. By itself
# it just writes out stat data where its told to, but there's a seperate HeartbeatMonitor
# GUI to let you visualize things)
#clientApp.3.main=net.i2p.heartbeat.Heartbeat
#clientApp.3.name=Heartbeat
#clientApp.3.args=heartbeat.config

View File

@ -2,4 +2,4 @@
title ##_scripts_winttl## title ##_scripts_winttl##
cd ##_scripts_installdir## cd ##_scripts_installdir##
echo ##_scripts_message## echo ##_scripts_message##
java -DloggerFilenameOverride=logs\##_scripts_logname## -Djava.library.path=. -Dcrypto.dh.precalc.min=0 -cp lib\mstreaming.jar;lib\i2p.jar -jar lib\i2ptunnel.jar -nocli -e "config localhost ##_scripts_port##" -e "##_scripts_cmd##" javaw -DloggerFilenameOverride=logs\##_scripts_logname## -Djava.library.path=. -Dcrypto.dh.precalc.min=0 -cp lib\mstreaming.jar;lib\i2p.jar -jar lib\i2ptunnel.jar -nocli -e "config localhost ##_scripts_port##" -e "##_scripts_cmd##"

View File

@ -5,5 +5,5 @@ cd ##_scripts_installdir##
REM the -XX args are workarounds for bugs in java 1.4.2's garbage collector REM the -XX args are workarounds for bugs in java 1.4.2's garbage collector
REM replace java with javaw if you don't want a window to pop up REM replace java with javaw if you don't want a window to pop up
java -cp lib\i2p.jar;lib\router.jar -Djava.library.path=. -DloggerFilenameOverride=logs\log-router-#.txt -XX:NewSize=4M -XX:MaxNewSize=8M -XX:PermSize=8M -XX:MaxPermSize=32M net.i2p.router.Router javaw -cp lib\i2p.jar;lib\router.jar;lib\mstreaming.jar;lib\heartbeat.jar;lib\i2ptunnel.jar;lib\netmonitor.jar;lib\sam.jar -Djava.library.path=. -DloggerFilenameOverride=logs\log-router-#.txt -XX:NewSize=4M -XX:MaxNewSize=8M -XX:PermSize=8M -XX:MaxPermSize=32M net.i2p.router.Router
pause echo Router started up, please see http://localhost:7655/

View File

@ -2,7 +2,7 @@
cd ##_scripts_installdir## cd ##_scripts_installdir##
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
# the -XX args are workarounds for bugs in java 1.4.2's garbage collector # the -XX args are workarounds for bugs in java 1.4.2's garbage collector
nohup nice java -cp lib/i2p.jar:lib/router.jar -Djava.library.path=. -DloggerFilenameOverride=logs/log-router-#.txt -XX:NewSize=4M -XX:MaxNewSize=8M -XX:PermSize=8M -XX:MaxPermSize=32M net.i2p.router.Router --quiet > /dev/null & nohup nice java -cp lib/i2p.jar:lib/router.jar:lib/mstreaming.jar:lib/heartbeat.jar:lib/i2ptunnel.jar:lib/netmonitor.jar:lib/sam.jar -Djava.library.path=. -DloggerFilenameOverride=logs/log-router-#.txt -XX:NewSize=4M -XX:MaxNewSize=8M -XX:PermSize=8M -XX:MaxPermSize=32M net.i2p.router.Router --quiet > /dev/null &
# Save the pid just in case we ever want to stop the router # Save the pid just in case we ever want to stop the router
echo $! > router.pid echo $! > router.pid
echo I2P Router started echo I2P Router started