sender: use RoundTripper instead of Client in sender

release-2.0
Yicheng Qin 2014-11-12 15:41:05 -08:00
parent 0772987128
commit 23b5bc0dfe
1 changed files with 5 additions and 6 deletions

View File

@ -100,9 +100,8 @@ func (h *sendHub) Add(m *Member) {
}
// TODO: considering how to switch between all available peer urls
u := fmt.Sprintf("%s%s", m.PickPeerURL(), raftPrefix)
c := &http.Client{Transport: h.tr}
fs := h.ls.Follower(m.ID.String())
s := newSender(u, h.cl.ID(), c, fs)
s := newSender(h.tr, u, h.cl.ID(), fs)
h.senders[m.ID] = s
}
@ -129,19 +128,19 @@ func (h *sendHub) Update(m *Member) {
}
type sender struct {
tr http.RoundTripper
u string
cid types.ID
c *http.Client
fs *stats.FollowerStats
q chan []byte
mu sync.RWMutex
}
func newSender(u string, cid types.ID, c *http.Client, fs *stats.FollowerStats) *sender {
func newSender(tr http.RoundTripper, u string, cid types.ID, fs *stats.FollowerStats) *sender {
s := &sender{
tr: tr,
u: u,
cid: cid,
c: c,
fs: fs,
q: make(chan []byte),
}
@ -188,7 +187,7 @@ func (s *sender) post(data []byte) error {
}
req.Header.Set("Content-Type", "application/protobuf")
req.Header.Set("X-Etcd-Cluster-ID", s.cid.String())
resp, err := s.c.Do(req)
resp, err := s.tr.RoundTrip(req)
if err != nil {
return fmt.Errorf("error posting to %q: %v", req.URL.String(), err)
}