X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fmsg%2Fasync%2FAsyncMessenger.cc;h=7595b35d77c2104802c40045afac129846510383;hb=f6b5b4d738b87d88d2de35127b6b0e41eae2a272;hp=4f1224284f28ff98f770dca83207255428c74397;hpb=12732ca2e80d168d344a265acffc1fbd1fa1f1b5;p=ceph.git diff --git a/ceph/src/msg/async/AsyncMessenger.cc b/ceph/src/msg/async/AsyncMessenger.cc index 4f1224284..7595b35d7 100644 --- a/ceph/src/msg/async/AsyncMessenger.cc +++ b/ceph/src/msg/async/AsyncMessenger.cc @@ -503,6 +503,24 @@ void AsyncMessenger::_finish_bind(const entity_addrvec_t& bind_addrs, did_bind = true; } +int AsyncMessenger::client_reset() +{ + mark_down_all(); + + std::scoped_lock l{lock}; + // adjust the nonce; we want our entity_addr_t to be truly unique. + nonce += 1000000; + ldout(cct, 10) << __func__ << " new nonce " << nonce << dendl; + + entity_addrvec_t newaddrs = *my_addrs; + for (auto& a : newaddrs.v) { + a.set_nonce(nonce); + } + set_myaddrs(newaddrs); + _init_local_connection(); + return 0; +} + int AsyncMessenger::start() { std::scoped_lock l{lock};