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/raft"
"github.com/coreos/etcd/snap" "github.com/coreos/etcd/snap"
"github.com/coreos/etcd/store" "github.com/coreos/etcd/store"
"github.com/coreos/etcd/transport"
"github.com/coreos/etcd/wal" "github.com/coreos/etcd/wal"
) )
@ -167,18 +168,28 @@ func startEtcd() {
Info: cors, Info: cors,
} }
l, err := transport.NewListener(*paddr)
if err != nil {
log.Fatal(err)
}
// Start the peer server in a goroutine // Start the peer server in a goroutine
go func() { go func() {
log.Print("Listening for peers on ", *paddr) 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 // Start a client server goroutine for each listen address
for _, addr := range *addrs { for _, addr := range *addrs {
addr := addr addr := addr
l, err := transport.NewListener(addr)
if err != nil {
log.Fatal(err)
}
go func() { go func() {
log.Print("Listening for client requests on ", addr) 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 // Start a proxy server goroutine for each listen address
for _, addr := range *addrs { for _, addr := range *addrs {
addr := addr addr := addr
l, err := transport.NewListener(addr)
if err != nil {
log.Fatal(err)
}
go func() { go func() {
log.Print("Listening for client requests on ", addr) 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)
}