diff --git a/src/org/getmonero/i2p/zero/Main.java b/src/org/getmonero/i2p/zero/Main.java index 2f013a3..4a1f7c6 100644 --- a/src/org/getmonero/i2p/zero/Main.java +++ b/src/org/getmonero/i2p/zero/Main.java @@ -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() { - @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(()->{ + r.setKillVMOnEnd(true); + r.runRouter(); + }).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(); + 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(); + 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(); + catch (Exception e) { + e.printStackTrace(); } - }); + }).start(); + + Runtime.getRuntime().addShutdownHook(new Thread(()->{ + System.out.println("I2P router will shut down gracefully"); + r.shutdownGracefully(); + })); } diff --git a/src/org/getmonero/i2p/zero/TunnelControl.java b/src/org/getmonero/i2p/zero/TunnelControl.java index dcdc4b1..51e1d8f 100644 --- a/src/org/getmonero/i2p/zero/TunnelControl.java +++ b/src/org/getmonero/i2p/zero/TunnelControl.java @@ -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"); }