fixed first start race condition for router.config file being available

This commit is contained in:
knaccc
2019-03-24 10:49:57 +00:00
parent eebbfa37aa
commit 4a30608836
2 changed files with 14 additions and 4 deletions
@@ -17,6 +17,7 @@ import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.Date;
import java.util.HashMap;
import java.util.Optional;
import java.util.Properties;
public class RouterWrapper {
@@ -89,9 +90,20 @@ public class RouterWrapper {
new Thread(()->{
try {
while(true) {
if(router.isAlive()) {
break;
try {
File routerConfigFile = new File(i2PBaseDir, "router.config");
if(!routerConfigFile.exists()) continue;
Optional<String> portString = Files.lines(routerConfigFile.toPath()).filter(s -> s.startsWith("i2np.udp.port=")).findFirst();
if(portString.isEmpty()) continue;
routerExternalPort = Integer.parseInt(portString.get().split("=")[1]);
break;
}
catch (Exception e) {
e.printStackTrace();
}
}
else {
Thread.sleep(1000);
@@ -101,8 +113,6 @@ public class RouterWrapper {
System.out.println("I2P router now running");
File routerConfigFile = new File(i2PBaseDir, "router.config");
routerExternalPort = Integer.parseInt(Files.lines(routerConfigFile.toPath()).filter(s->s.startsWith("i2np.udp.port=")).findFirst().get().split("=")[1]);
new Thread(routerIsAliveCallback).start();
tunnelControl = new TunnelControl(this, i2PConfigDir, new File(i2PConfigDir, "tunnelTemp"));
@@ -1 +1 @@
1.3
1.4