etcd: manually construct listeners

This commit is contained in:
Brian Waldon 2014-09-22 16:35:00 -07:00
parent a4cca35e9d
commit a782a1a7d1
2 changed files with 28 additions and 3 deletions

22
main.go
View File

@ -19,6 +19,7 @@ import (
"github.com/coreos/etcd/raft"
"github.com/coreos/etcd/snap"
"github.com/coreos/etcd/store"
"github.com/coreos/etcd/transport"
"github.com/coreos/etcd/wal"
)
@ -167,18 +168,28 @@ func startEtcd() {
Info: cors,
}
l, err := transport.NewListener(*paddr)
if err != nil {
log.Fatal(err)
}
// Start the peer server in a goroutine
go func() {
log.Print("Listening for peers on ", *paddr)
log.Fatal(http.ListenAndServe(*paddr, ph))
log.Fatal(http.Serve(l, ph))
}()
// Start a client server goroutine for each listen address
for _, addr := range *addrs {
addr := addr
l, err := transport.NewListener(addr)
if err != nil {
log.Fatal(err)
}
go func() {
log.Print("Listening for client requests on ", addr)
log.Fatal(http.ListenAndServe(addr, ch))
log.Fatal(http.Serve(l, ch))
}()
}
}
@ -201,9 +212,14 @@ func startProxy() {
// Start a proxy server goroutine for each listen address
for _, addr := range *addrs {
addr := addr
l, err := transport.NewListener(addr)
if err != nil {
log.Fatal(err)
}
go func() {
log.Print("Listening for client requests on ", addr)
log.Fatal(http.ListenAndServe(addr, ph))
log.Fatal(http.Serve(l, ph))
}()
}
}

9
transport/listener.go Normal file
View File

@ -0,0 +1,9 @@
package transport
import (
"net"
)
func NewListener(addr string) (net.Listener, error) {
return net.Listen("tcp", addr)
}