From: Greg Farnum Date: Mon, 12 Oct 2009 21:04:46 +0000 (-0700) Subject: mon: MonmapMonitor now sends responses to commands and doesn't double-add X-Git-Tag: v0.17~65 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7d1e3b9f0f90dd6862043d2a26f20f71e0739696;p=ceph.git mon: MonmapMonitor now sends responses to commands and doesn't double-add monitor addresses. --- diff --git a/src/mon/MonmapMonitor.cc b/src/mon/MonmapMonitor.cc index 9c9f5121a787..96adf1f002af 100644 --- a/src/mon/MonmapMonitor.cc +++ b/src/mon/MonmapMonitor.cc @@ -92,8 +92,17 @@ bool MonmapMonitor::prepare_update(PaxosServiceMessage *message) } entity_addr_t addr; parse_ip_port(m->cmd[2].c_str(), addr); - pending_map.add(addr); - pending_map.last_changed = g_clock.now(); + bufferlist rdata; + if (!pending_map.contains(addr)) { + pending_map.add(addr); + pending_map.last_changed = g_clock.now(); + mon->reply_command(m, 0, "added mon to map", + rdata, paxos->get_version()); + } + else { + mon->reply_command(m, -EINVAL, "mon already exists", + rdata, paxos->get_version()); + } delete message; return true; }