var errMemberRemoved … var errMemberNotFound … // NewListener returns a listener for raft message transfer between peers. // It uses timeout listener to identify broken streams promptly. func NewListener(u url.URL, tlsinfo *transport.TLSInfo) (net.Listener, error) { … } // NewRoundTripper returns a roundTripper used to send requests // to rafthttp listener of remote peers. func NewRoundTripper(tlsInfo transport.TLSInfo, dialTimeout time.Duration) (http.RoundTripper, error) { … } // newStreamRoundTripper returns a roundTripper used to send stream requests // to rafthttp listener of remote peers. // Read/write timeout is set for stream roundTripper to promptly // find out broken status, which minimizes the number of messages // sent on broken connection. func newStreamRoundTripper(tlsInfo transport.TLSInfo, dialTimeout time.Duration) (http.RoundTripper, error) { … } // createPostRequest creates a HTTP POST request that sends raft message. func createPostRequest(lg *zap.Logger, u url.URL, path string, body io.Reader, ct string, urls types.URLs, from, cid types.ID) *http.Request { … } // checkPostResponse checks the response of the HTTP POST request that sends // raft message. func checkPostResponse(lg *zap.Logger, resp *http.Response, body []byte, req *http.Request, to types.ID) error { … } // reportCriticalError reports the given error through sending it into // the given error channel. // If the error channel is filled up when sending error, it drops the error // because the fact that error has happened is reported, which is // good enough. func reportCriticalError(err error, errc chan<- error) { … } // compareMajorMinorVersion returns an integer comparing two versions based on // their major and minor version. The result will be 0 if a==b, -1 if a < b, // and 1 if a > b. func compareMajorMinorVersion(a, b *semver.Version) int { … } // serverVersion returns the server version from the given header. func serverVersion(h http.Header) *semver.Version { … } // serverVersion returns the min cluster version from the given header. func minClusterVersion(h http.Header) *semver.Version { … } // checkVersionCompatibility checks whether the given version is compatible // with the local version. func checkVersionCompatibility(name string, server, minCluster *semver.Version) ( localServer *semver.Version, localMinCluster *semver.Version, err error) { … } // setPeerURLsHeader reports local urls for peer discovery func setPeerURLsHeader(req *http.Request, urls types.URLs) { … } // addRemoteFromRequest adds a remote peer according to an http request header func addRemoteFromRequest(tr Transporter, r *http.Request) { … }