From 8a3f479bde190fb01776cd663fff47c38cd79479 Mon Sep 17 00:00:00 2001 From: fuwa Date: Tue, 25 Jun 2019 23:10:47 +0800 Subject: [PATCH] use positive out peers as a conditional for syncing break --- cyberwow/lib/controller/rpc.dart | 14 ++++++++++++++ cyberwow/lib/state.dart | 8 ++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/cyberwow/lib/controller/rpc.dart b/cyberwow/lib/controller/rpc.dart index 71d7200..cda4f6f 100644 --- a/cyberwow/lib/controller/rpc.dart +++ b/cyberwow/lib/controller/rpc.dart @@ -111,3 +111,17 @@ Future offline() async { return responseBody["offline"]; } } + +Future outgoing_connections_count() async { + var response = await getInfo(); + + if (response == null) return -1; + + // print('Response status: ${response.statusCode}'); + if (response.statusCode != 200) { + return -1; + } else { + final responseBody = json.decode(response.body)['result']; + return responseBody["outgoing_connections_count"]; + } +} diff --git a/cyberwow/lib/state.dart b/cyberwow/lib/state.dart index c1ef782..7469996 100644 --- a/cyberwow/lib/state.dart +++ b/cyberwow/lib/state.dart @@ -157,10 +157,10 @@ class SyncingState extends HookedState { // final _offline = await rpc.offline(); // print('syncing: offline ${_offline}'); - final bool initState = line.contains('Initializing core'); - if (initState) - print('is init state'); - if (_targetHeight == 0 && (!initState) && _height > minimumHeight) break; + final _out_peers = await rpc.outgoing_connections_count(); + // print('syncing: out_peers ${_out_peers}'); + + if (_targetHeight == 0 && _out_peers > 0) break; } print('syncing: loop exit');