+ if state_lock.fail_reason == AddressState::TimeoutDuringRequest && state_lock.recvd_version && state_lock.recvd_verack {
+ if !state_lock.recvd_pong {
+ state_lock.fail_reason = AddressState::TimeoutAwaitingPong;
+ } else 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: {})",
+ 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);
+ }