mirror of
https://github.com/wownero/i2p-zero.git
synced 2026-10-17 15:21:40 +02:00
cleaner thread code
This commit is contained in:
@@ -43,51 +43,41 @@ public class Main {
|
||||
|
||||
Router r = new Router(p);
|
||||
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
r.setKillVMOnEnd(true);
|
||||
r.runRouter();
|
||||
}
|
||||
}.start();
|
||||
new Thread(()->{
|
||||
r.setKillVMOnEnd(true);
|
||||
r.runRouter();
|
||||
}).start();
|
||||
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
|
||||
while(true) {
|
||||
if(r.isAlive()) {
|
||||
break;
|
||||
}
|
||||
else {
|
||||
Thread.sleep(1000);
|
||||
System.out.println("Waiting for I2P router to start...");
|
||||
}
|
||||
new Thread(()->{
|
||||
try {
|
||||
while(true) {
|
||||
if(r.isAlive()) {
|
||||
break;
|
||||
}
|
||||
else {
|
||||
Thread.sleep(1000);
|
||||
System.out.println("Waiting for I2P router to start...");
|
||||
}
|
||||
|
||||
String[] args = new String[]{"sam.keys", "127.0.0.1", "7656", "i2cp.tcp.host=127.0.0.1", "i2cp.tcp.port=7654"};
|
||||
I2PAppContext context = r.getContext();
|
||||
ClientAppManager mgr = new ClientAppManagerImpl(context);
|
||||
SAMBridge samBridge = new SAMBridge(context, mgr, args);
|
||||
samBridge.startup();
|
||||
|
||||
new Thread(new TunnelControl(new File(new File(p.getProperty("i2p.dir.config")), "tunnel"))).start();
|
||||
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
|
||||
Runtime.getRuntime().addShutdownHook(new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
System.out.println("I2P router will shut down gracefully");
|
||||
r.shutdownGracefully();
|
||||
String[] samArgs = new String[]{"sam.keys", "127.0.0.1", "7656", "i2cp.tcp.host=127.0.0.1", "i2cp.tcp.port=7654"};
|
||||
I2PAppContext context = r.getContext();
|
||||
ClientAppManager mgr = new ClientAppManagerImpl(context);
|
||||
SAMBridge samBridge = new SAMBridge(context, mgr, samArgs);
|
||||
samBridge.startup();
|
||||
|
||||
new Thread(new TunnelControl(new File(new File(p.getProperty("i2p.dir.config")), "tunnel"))).start();
|
||||
|
||||
}
|
||||
});
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}).start();
|
||||
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(()->{
|
||||
System.out.println("I2P router will shut down gracefully");
|
||||
r.shutdownGracefully();
|
||||
}));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -56,73 +56,55 @@ public class TunnelControl implements Runnable {
|
||||
String destPubKey = Base64.encode(Files.readAllBytes(new File(pubkeyPath).toPath()));
|
||||
|
||||
// listen using the I2P server keypair, and forward incoming connections to a destination and port
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
I2PTunnel t = new I2PTunnel(new String[]{"-die", "-nocli", "-e", "server "+destHost+" "+destPort+" " + seckeyPath});
|
||||
serverTunnels.put(destPubKey, t);
|
||||
}
|
||||
}.start();
|
||||
new Thread(()->{
|
||||
I2PTunnel t = new I2PTunnel(new String[]{"-die", "-nocli", "-e", "server "+destHost+" "+destPort+" " + seckeyPath});
|
||||
serverTunnels.put(destPubKey, t);
|
||||
}).start();
|
||||
out.println(destPubKey);
|
||||
}
|
||||
else if(args[0].equals("server.destroy")) {
|
||||
String destPubKey = args[1];
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
var t = serverTunnels.get(destPubKey);
|
||||
serverTunnels.remove(destPubKey);
|
||||
t.runClose(new String[]{"forced", "all"}, t);
|
||||
}
|
||||
}.start();
|
||||
new Thread(()->{
|
||||
var t = serverTunnels.get(destPubKey);
|
||||
serverTunnels.remove(destPubKey);
|
||||
t.runClose(new String[]{"forced", "all"}, t);
|
||||
}).start();
|
||||
out.println("OK");
|
||||
}
|
||||
else if(args[0].equals("client.create")) {
|
||||
String destPubKey = args[1];
|
||||
int port = clientPortSeq++;
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
var t = new I2PTunnel(new String[]{"-die", "-nocli", "-e", "config localhost 7654", "-e", "client " + port + " " + destPubKey});
|
||||
clientTunnels.put(port, t);
|
||||
}
|
||||
}.start();
|
||||
new Thread(()->{
|
||||
var t = new I2PTunnel(new String[]{"-die", "-nocli", "-e", "config localhost 7654", "-e", "client " + port + " " + destPubKey});
|
||||
clientTunnels.put(port, t);
|
||||
}).start();
|
||||
out.println(port);
|
||||
}
|
||||
if(args[0].equals("client.destroy")) {
|
||||
int port = Integer.parseInt(args[1]);
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
var t = clientTunnels.get(port);
|
||||
clientTunnels.remove(port);
|
||||
t.runClose(new String[]{"forced", "all"}, t);
|
||||
}
|
||||
}.start();
|
||||
new Thread(()->{
|
||||
var t = clientTunnels.get(port);
|
||||
clientTunnels.remove(port);
|
||||
t.runClose(new String[]{"forced", "all"}, t);
|
||||
}).start();
|
||||
out.println("OK");
|
||||
}
|
||||
if(args[0].equals("socks.create")) {
|
||||
int port = Integer.parseInt(args[1]);
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
// sockstunnel port
|
||||
var t = new I2PTunnel(new String[]{"-die", "-nocli", "-e", "sockstunnel " + port});
|
||||
socksTunnels.put(port, t);
|
||||
}
|
||||
}.start();
|
||||
new Thread(()->{
|
||||
// sockstunnel port
|
||||
var t = new I2PTunnel(new String[]{"-die", "-nocli", "-e", "sockstunnel " + port});
|
||||
socksTunnels.put(port, t);
|
||||
}).start();
|
||||
out.println("OK");
|
||||
}
|
||||
if(args[0].equals("socks.destroy")) {
|
||||
int port = Integer.parseInt(args[1]);
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
var t = socksTunnels.get(port);
|
||||
socksTunnels.remove(port);
|
||||
t.runClose(new String[]{"forced", "all"}, t);
|
||||
}
|
||||
}.start();
|
||||
new Thread(()->{
|
||||
var t = socksTunnels.get(port);
|
||||
socksTunnels.remove(port);
|
||||
t.runClose(new String[]{"forced", "all"}, t);
|
||||
}).start();
|
||||
out.println("OK");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user