|
|
|
@ -2,6 +2,7 @@ package org.getmonero.i2p.embedded;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.util.Properties;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
import net.i2p.I2PAppContext;
|
|
|
|
|
import net.i2p.app.ClientAppManager;
|
|
|
|
@ -13,7 +14,8 @@ public class Main {
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
|
|
|
|
|
System.out.println("I2P router launched. SAM listening on port 7656. Press Ctrl-C to terminate.");
|
|
|
|
|
System.out.println("I2P router launched. SAM listening on port 7656.\n" +
|
|
|
|
|
"Press Ctrl-C to gracefully shut down the router (or send the SIGINT signal to the process).");
|
|
|
|
|
|
|
|
|
|
Properties p = new Properties();
|
|
|
|
|
// add your configuration settings, directories, etc.
|
|
|
|
@ -21,18 +23,29 @@ public class Main {
|
|
|
|
|
p.put("i2p.dir.base", "/usr/share/i2p");
|
|
|
|
|
// where to find the I2P data files
|
|
|
|
|
p.put("i2p.dir.config", System.getProperty("user.home") + File.separator + ".i2p");
|
|
|
|
|
|
|
|
|
|
// bandwidth limits in K bytes per second
|
|
|
|
|
p.put("i2np.inboundKBytesPerSecond","50");
|
|
|
|
|
p.put("i2np.outboundKBytesPerSecond","50");
|
|
|
|
|
p.put("router.sharePercentage","80");
|
|
|
|
|
|
|
|
|
|
// allow default properties to be overridden via command line args, e.g. --i2p.dir.base=/usr/share/i2p
|
|
|
|
|
for(String arg : args) {
|
|
|
|
|
if(arg.startsWith("--")) {
|
|
|
|
|
String[] s = arg.split("=");
|
|
|
|
|
String argName = s[0].substring("--".length());
|
|
|
|
|
String argVal = s[1];
|
|
|
|
|
p.put(argName, argVal);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
System.out.println("Options set: "
|
|
|
|
|
+ p.entrySet().stream().map(e->"--"+e.getKey()+"="+e.getValue()).collect(Collectors.joining( " " )));
|
|
|
|
|
|
|
|
|
|
Router r = new Router(p);
|
|
|
|
|
|
|
|
|
|
new Thread() {
|
|
|
|
|
@Override
|
|
|
|
|
public void run() {
|
|
|
|
|
// don't call exit() when the router stops
|
|
|
|
|
r.setKillVMOnEnd(true);
|
|
|
|
|
r.runRouter();
|
|
|
|
|
}
|
|
|
|
|