#include "messages/MClientMount.h"
#include "messages/MClientMountAck.h"
#include "messages/MMonCommand.h"
-#include "messages/MRoute.h"
#include "common/Timer.h"
ack->addr = to.addr;
mon->monmap->encode(ack->monmap_bl);
- if (m->get_source().is_mon()) {
- // route reply
- mon->messenger->send_message(new MRoute(ack, to), m->get_source_inst());
- } else {
- mon->messenger->send_message(ack, to);
- }
+ mon->send_reply(m, ack, to);
// also send latest mds and osd maps
//mon->mdsmon()->send_latest(to);
{
MMonCommandAck *reply = new MMonCommandAck(m->cmd, rc, rs, version);
reply->set_data(rdata);
- if (m->get_source().is_mon())
- messenger->send_message(new MRoute(m, m->get_orig_source_inst()), m->get_source_inst());
- else
- messenger->send_message(reply, m->get_orig_source_inst());
+ send_reply(m, reply);
delete m;
}
+void Monitor::send_reply(Message *req, Message *reply, entity_inst_t to)
+{
+ if (req->get_source().is_mon()) {
+ messenger->send_message(new MRoute(reply, to), req->get_source_inst());
+ } else {
+ messenger->send_message(reply, to);
+ }
+}
+
void Monitor::handle_observe(MMonObserve *m)
{
dout(10) << "handle_observe " << *m << " from " << m->get_source_inst() << dendl;
void reply_command(MMonCommand *m, int rc, const string &rs, version_t version);
void reply_command(MMonCommand *m, int rc, const string &rs, bufferlist& rdata, version_t version);
+ void send_reply(Message *req, Message *reply, entity_inst_t to);
+ void send_reply(Message *req, Message *reply) {
+ send_reply(req, reply, req->get_orig_source_inst());
+ }
+
void inject_args(const entity_inst_t& inst, string& args, version_t version) {
vector<string> a(1);
a[0] = args;