seastar::future<> Client::handle_monmap(crimson::net::Connection &conn,
Ref<MMonMap> m)
{
+ const auto old_auth_epoch = monmap.auth_epoch;
+
monmap.decode(m->monmapbl);
const auto peer_addr = conn.get_peer_addr();
auto cur_mon = monmap.get_name(peer_addr);
}
}
+ if (old_auth_epoch < monmap.auth_epoch) {
+ logger().warn("mon.{} auth epoch has changed: "
+ "invalidating tickets and rotating secrets", cur_mon);
+ co_await _wipe_secrets_and_tickets();
+ }
+
// TODO: we can probably renew tickets only if the session was reopened
if (active_con) {
logger().info("handle_monmap: renewing tickets");