diff --git a/src/braft/configuration.h b/src/braft/configuration.h index cc11399..25e0bae 100644 --- a/src/braft/configuration.h +++ b/src/braft/configuration.h @@ -135,13 +135,21 @@ struct PeerId { inline bool operator<(const PeerId& id1, const PeerId& id2) { if (id1.addr < id2.addr) { return true; - } else { - return id1.addr == id2.addr && id1.idx < id2.idx; } + if (id2.addr < id1.addr) { + return false; + } + if (id1.idx < id2.idx) { + return true; + } + if (id2.idx < id1.idx) { + return false; + } + return id1.role < id2.role; } inline bool operator==(const PeerId& id1, const PeerId& id2) { - return (id1.addr == id2.addr && id1.idx == id2.idx); + return (id1.addr == id2.addr && id1.idx == id2.idx && id1.role == id2.role); } inline bool operator!=(const PeerId& id1, const PeerId& id2) {