update for async get endpoint info

This commit is contained in:
CaiHQ
2025-07-18 19:59:22 +08:00
parent a9ec23400e
commit 9ecbf54c2d
2 changed files with 16 additions and 8 deletions

View File

@@ -8,7 +8,7 @@ plugins {
apply from: '../spotless.gradle'
group = "org.bdware.sc"
version = "1.10.5"
version = "1.10.6"
tasks.withType(JavaCompile) {
// options.compilerArgs << '-Xlint:none'
// options.compilerArgs << '-Xlint:deprecation' << "-Werror"

View File

@@ -82,22 +82,30 @@ public class DoipLocalSingleton {
}
if (config.routerURI != null && config.repoName != null) {
AuditIrpClient irpClient = new AuditIrpClient(config);
EndpointInfo endpointInfo = irpClient.getEndpointInfo();
repoID = endpointInfo.getDoId();
owner = endpointInfo.getPubKey();
infos.clear();
EndpointInfo endpointInfo = null;
for (int i = 0; i < 10; i++) {
endpointInfo = irpClient.getEndpointInfo();
if (endpointInfo == null) Thread.sleep(200);
}
if (endpointInfo != null) {
repoID = endpointInfo.getDoId();
owner = endpointInfo.getPubKey();
infos.clear();
}
infos.add(new DoipListenerConfig(endpointInfo.getURI(), "2.1"));
port = new URI(endpointInfo.getURI()).getPort();
SharableVarManager.initSharableVarManager(repoID, config);
}
}
// 如果启动参数中添加了 doipStartPort 参数,使用该参数作为启动端口
if (otherConfigs != null && otherConfigs.isJsonObject() && otherConfigs.getAsJsonObject().has("doipStartPort") && infos.size() == 1) {
if (otherConfigs != null && otherConfigs.isJsonObject()
&& otherConfigs.getAsJsonObject().has("doipStartPort") && infos.size() == 1) {
int doipStartPort = otherConfigs.getAsJsonObject().get("doipStartPort").getAsInt();
// 如果当前启动的端口和指定的端口不一致,修改启动端口
if (doipStartPort != port) {
infos.get(0).url = infos.get(0).url.replace(String.valueOf(port), String.valueOf(doipStartPort));
port = doipStartPort;
infos.get(0).url = infos.get(0).url.replace(String.valueOf(port),
String.valueOf(doipStartPort));
port = doipStartPort;
}
}