From b2d3ed74e307e05e67791924c556e1f9907faa5b Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nicolas.pope@utu.fi> Date: Tue, 10 May 2022 22:10:23 +0100 Subject: [PATCH] Try some reordering --- src/peer.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/peer.cpp b/src/peer.cpp index dab342b..83d722a 100644 --- a/src/peer.cpp +++ b/src/peer.cpp @@ -215,13 +215,7 @@ void Peer::close(bool retry) { void Peer::_close(bool retry) { if (status_ != NodeStatus::kConnected && status_ != NodeStatus::kConnecting) return; - status_ = NodeStatus::kDisconnected; - if (sock_->is_valid()) { - net_->_notifyDisconnect(this); - sock_->close(); - } - // Attempt auto reconnect? if (retry && can_reconnect_) { status_ = NodeStatus::kReconnecting; @@ -229,6 +223,11 @@ void Peer::_close(bool retry) { } else { status_ = NodeStatus::kDisconnected; } + + if (sock_->is_valid()) { + net_->_notifyDisconnect(this); + sock_->close(); + } } bool Peer::socketError() { @@ -238,8 +237,8 @@ bool Peer::socketError() { // Must close before log since log may try to send over net causing // more socket errors... - _close(reconnect_on_socket_error_); - net_->_notifyError(this, ftl::protocol::Error::kSocketError, uri_.to_string()); + net_->_notifyError(this, ftl::protocol::Error::kSocketError, uri_.to_string()); + _close(reconnect_on_socket_error_); return true; } -- GitLab