Check if seedNodes are available atrequestPreliminaryData call and set isBootstrapped to true if not available and call listeners (onNoSeedNodeAvailable).

This commit is contained in:
Manfred Karrer 2017-07-06 13:24:07 +02:00
parent c9e44a734c
commit 973a4db739
3 changed files with 12 additions and 4 deletions

View file

@ -71,9 +71,8 @@ public class AppSetupWithP2P extends AppSetup {
p2pNetWorkReady = initP2PNetwork();
p2pNetWorkReady.addListener((observable, oldValue, newValue) -> {
if (newValue) {
if (newValue)
onBasicServicesInitialized();
}
});
}

View file

@ -343,9 +343,15 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis
socks5ProxyProvider.setSocks5ProxyInternal(networkNode.getSocksProxy());
requestDataManager.requestPreliminaryData();
boolean seedNodesAvailable = requestDataManager.requestPreliminaryData();
keepAliveManager.start();
p2pServiceListeners.stream().forEach(SetupListener::onTorNodeReady);
if (!seedNodesAvailable) {
isBootstrapped = true;
p2pServiceListeners.stream().forEach(P2PServiceListener::onNoSeedNodeAvailable);
}
}
@Override

View file

@ -95,7 +95,7 @@ public class RequestDataManager implements MessageListener, ConnectionListener,
// API
///////////////////////////////////////////////////////////////////////////////////////////
public void requestPreliminaryData() {
public boolean requestPreliminaryData() {
Log.traceCall();
ArrayList<NodeAddress> nodeAddresses = new ArrayList<>(seedNodeAddresses);
if (!nodeAddresses.isEmpty()) {
@ -104,6 +104,9 @@ public class RequestDataManager implements MessageListener, ConnectionListener,
nodeAddresses.remove(nextCandidate);
isPreliminaryDataRequest = true;
requestData(nextCandidate, nodeAddresses);
return true;
} else {
return false;
}
}