let store = unsafe { DATA_STORE.as_ref().unwrap() };
printer.set_stat(Stat::ConnectionClosed);
- let state_lock = final_peer_state.lock().unwrap();
+ let mut state_lock = final_peer_state.lock().unwrap();
if state_lock.recvd_version && state_lock.recvd_verack &&
state_lock.recvd_addrs && state_lock.recvd_block {
let old_state = store.set_node_state(node, AddressState::Good, state_lock.node_services);
}
} else {
assert!(state_lock.fail_reason != AddressState::Good);
+ if state_lock.fail_reason == AddressState::TimeoutDuringRequest && state_lock.recvd_version && state_lock.recvd_verack {
+ if !state_lock.recvd_addrs {
+ state_lock.fail_reason = AddressState::TimeoutAwaitingAddr;
+ } else if !state_lock.recvd_block {
+ state_lock.fail_reason = AddressState::TimeoutAwaitingBlock;
+ }
+ }
let old_state = store.set_node_state(node, state_lock.fail_reason, 0);
if (manual || old_state != state_lock.fail_reason) && state_lock.fail_reason == AddressState::TimeoutDuringRequest {
- printer.add_line(format!("Updating {} from {} to Timeout During Request (ver: {}, vack: {}, addr: {}, block: {})",
- node, old_state.to_str(), state_lock.recvd_version, state_lock.recvd_verack, state_lock.recvd_addrs, state_lock.recvd_block), true);
+ printer.add_line(format!("Updating {} from {} to Timeout During Request (ver: {}, vack: {})",
+ node, old_state.to_str(), state_lock.recvd_version, state_lock.recvd_verack), true);
} else if manual || (old_state != state_lock.fail_reason && state_lock.msg.0 != "" && state_lock.msg.1) {
printer.add_line(format!("Updating {} from {} to {} {}", node, old_state.to_str(), state_lock.fail_reason.to_str(), &state_lock.msg.0), state_lock.msg.1);
}