refacotor(transporter): make TLS config explicit

This commit is contained in:
Brian Waldon
2014-01-20 20:31:09 -08:00
parent f158dfcd77
commit 089021ca6d
3 changed files with 11 additions and 9 deletions

View File

@@ -29,7 +29,7 @@ type dialer func(network, addr string) (net.Conn, error)
// Create transporter using by raft server
// Create http or https transporter based on
// whether the user give the server cert and key
func NewTransporter(scheme string, tlsConf tls.Config, followersStats *raftFollowersStats, serverStats *raftServerStats, registry *Registry, dialTimeout, requestTimeout, responseHeaderTimeout time.Duration) *transporter {
func NewTransporter(followersStats *raftFollowersStats, serverStats *raftServerStats, registry *Registry, dialTimeout, requestTimeout, responseHeaderTimeout time.Duration) *transporter {
tr := &http.Transport{
Dial: func(network, addr string) (net.Conn, error) {
return net.DialTimeout(network, addr, dialTimeout)
@@ -37,11 +37,6 @@ func NewTransporter(scheme string, tlsConf tls.Config, followersStats *raftFollo
ResponseHeaderTimeout: responseHeaderTimeout,
}
if scheme == "https" {
tr.TLSClientConfig = &tlsConf
tr.DisableCompression = true
}
t := transporter{
client: &http.Client{Transport: tr},
transport: tr,
@@ -54,6 +49,11 @@ func NewTransporter(scheme string, tlsConf tls.Config, followersStats *raftFollo
return &t
}
func (t *transporter) SetTLSConfig(tlsConf tls.Config) {
t.transport.TLSClientConfig = &tlsConf
t.transport.DisableCompression = true
}
// Sends AppendEntries RPCs to a peer when the server is the leader.
func (t *transporter) SendAppendEntriesRequest(server raft.Server, peer *raft.Peer, req *raft.AppendEntriesRequest) *raft.AppendEntriesResponse {
var b bytes.Buffer