active_con.reset();
return reopen_session(-1).then([this] {
if (active_con) {
- on_session_opened();
+ return on_session_opened();
+ } else {
+ return seastar::now();
}
- return seastar::now();
});
} else {
return seastar::now();
logger().warn("mon.{} went away", cur_mon);
return reopen_session(-1).then([this] {
if (active_con) {
- on_session_opened();
+ return on_session_opened();
+ } else {
+ return seastar::now();
}
- return seastar::now();
});
}
}
{
return reopen_session(-1).then([this] {
if (active_con) {
- on_session_opened();
+ return on_session_opened();
+ } else {
+ return seastar::now();
}
- return seastar::now();
});
}
}
}
-void Client::on_session_opened()
+seastar::future<> Client::on_session_opened()
{
for (auto& m : pending_messages) {
(void) active_con->get_conn()->send(m.msg);
m.pr.set_value();
}
pending_messages.clear();
+ return seastar::now();
}
bool Client::sub_want(const std::string& what, version_t start, unsigned flags)
seastar::future<> handle_log_ack(Ref<MLogAck> m);
seastar::future<> handle_config(Ref<MConfig> m);
- void on_session_opened();
+ seastar::future<> on_session_opened();
private:
seastar::future<> load_keyring();
seastar::future<> authenticate();