From a53ae6b6ff2faa7fa1d54b3eb662dcfb3591d8ef Mon Sep 17 00:00:00 2001 From: Determinant Date: Sun, 30 Jun 2019 13:49:59 -0400 Subject: try to fix get_peer_addr bug --- include/salticidae/network.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/salticidae/network.h b/include/salticidae/network.h index 1f21c92..d83e7f1 100644 --- a/include/salticidae/network.h +++ b/include/salticidae/network.h @@ -284,7 +284,7 @@ class PeerNetwork: public MsgNetwork { NetAddr get_peer_addr() { auto ret = *(static_cast( get_net()->disp_tcall->call([this](ThreadCall::Handle &h) { - h.set_result(peer ? peer->peer_addr : NetAddr()); + h.set_result(peer ? NetAddr(peer->peer_addr) : NetAddr()); }).get())); return ret; } @@ -650,6 +650,7 @@ void PeerNetwork::on_teardown(const ConnPool::conn_t &_conn) { known_peers[p->peer_addr] = std::make_pair(uint256_t(), TimerEvent()); { pinfo_ulock_t __g(pid2peer_lock); + p->conn->peer = nullptr; pid2peer.erase(p->peer_id); } this->user_tcall->async_call([this, conn](ThreadCall::Handle &) { -- cgit v1.2.3