@@ -92,6 +92,9 @@ func (h *sendHub) Stop() {
}
func (h *sendHub) Add(m *Member) {
+ if _, ok := h.senders[m.ID]; ok {
+ return
+ }
// TODO: considering how to switch between all available peer urls
u := fmt.Sprintf("%s%s", m.PickPeerURL(), raftPrefix)
c := &http.Client{Transport: h.tr}
@@ -61,6 +61,12 @@ func TestSendHubAdd(t *testing.T) {
if s.u != "http://a/raft" {
t.Errorf("url = %s, want %s", s.u, "http://a/raft")
+
+ h.Add(m)
+ ns := h.senders[types.ID(1)]
+ if s != ns {
+ t.Errorf("sender = %p, want %p", ns, s)
func TestSendHubRemove(t *testing.T) {