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 = initP2PNetwork();
p2pNetWorkReady.addListener((observable, oldValue, newValue) -> { p2pNetWorkReady.addListener((observable, oldValue, newValue) -> {
if (newValue) { if (newValue)
onBasicServicesInitialized(); onBasicServicesInitialized();
}
}); });
} }

View file

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

View file

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