mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
fix race
This commit is contained in:
parent
82fe001c65
commit
b71811375b
19
etcd.go
19
etcd.go
@ -250,13 +250,6 @@ func dialTimeout(network, addr string) (net.Conn, error) {
|
||||
return net.DialTimeout(network, addr, HTTPTimeout)
|
||||
}
|
||||
|
||||
type Etcd struct {
|
||||
http.Server
|
||||
url string
|
||||
scheme string
|
||||
tls TLSConfig
|
||||
}
|
||||
|
||||
// Start to listen and response client command
|
||||
func startEtcdTransport(info Info, scheme string, tlsConf tls.Config) {
|
||||
u, err := url.Parse(info.EtcdURL)
|
||||
@ -265,13 +258,11 @@ func startEtcdTransport(info Info, scheme string, tlsConf tls.Config) {
|
||||
}
|
||||
infof("etcd server [%s:%s]", info.Name, u)
|
||||
|
||||
server := &Etcd{
|
||||
Server: http.Server{
|
||||
Handler: NewEtcdMuxer(),
|
||||
TLSConfig: &tlsConf,
|
||||
Addr: u.Host,
|
||||
},
|
||||
}
|
||||
server := http.Server{
|
||||
Handler: NewEtcdMuxer(),
|
||||
TLSConfig: &tlsConf,
|
||||
Addr: u.Host,
|
||||
}
|
||||
|
||||
if scheme == "http" {
|
||||
fatal(server.ListenAndServe())
|
||||
|
@ -165,8 +165,9 @@ func dispatch(c Command, w *http.ResponseWriter, req *http.Request, etcd bool) {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
leader := raftServer.Leader()
|
||||
// current no leader
|
||||
if raftServer.Leader() == "" {
|
||||
if leader == "" {
|
||||
(*w).WriteHeader(http.StatusInternalServerError)
|
||||
(*w).Write(newJsonError(300, ""))
|
||||
return
|
||||
@ -179,10 +180,10 @@ func dispatch(c Command, w *http.ResponseWriter, req *http.Request, etcd bool) {
|
||||
var url string
|
||||
|
||||
if etcd {
|
||||
etcdAddr, _ := nameToEtcdURL(raftServer.Leader())
|
||||
etcdAddr, _ := nameToEtcdURL(leader)
|
||||
url = etcdAddr + path
|
||||
} else {
|
||||
raftAddr, _ := nameToRaftURL(raftServer.Leader())
|
||||
raftAddr, _ := nameToRaftURL(leader)
|
||||
url = raftAddr + path
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user