diff --git a/etcdserver/etcdhttp/http.go b/etcdserver/etcdhttp/http.go index 6763d985f..af7f3a8a1 100644 --- a/etcdserver/etcdhttp/http.go +++ b/etcdserver/etcdhttp/http.go @@ -39,7 +39,8 @@ func (ps Peers) Pick(id int64) string { // Set parses command line sets of names to ips formatted like: // a=1.1.1.1&a=1.1.1.2&b=2.2.2.2 -func (ps Peers) Set(s string) error { +func (ps *Peers) Set(s string) error { + m := make(map[int64][]string) v, err := url.ParseQuery(s) if err != nil { return err @@ -49,12 +50,13 @@ func (ps Peers) Set(s string) error { if err != nil { return err } - ps[id] = v + m[id] = v } + *ps = m return nil } -func (ps Peers) String() string { +func (ps *Peers) String() string { return "todo" } diff --git a/main.go b/main.go index 6c7647f3b..8e3e5694f 100644 --- a/main.go +++ b/main.go @@ -27,7 +27,8 @@ var ( timeout = flag.Duration("timeout", 10*time.Second, "Request Timeout") laddr = flag.String("l", ":8080", "HTTP service address (e.g., ':8080')") dir = flag.String("data-dir", "", "Path to the data directory") - peers = etcdhttp.Peers{} + + peers = &etcdhttp.Peers{} ) func init() { @@ -62,7 +63,7 @@ func main() { Store: store.New(), Node: n, Save: w.Save, - Send: etcdhttp.Sender(peers), + Send: etcdhttp.Sender(*peers), Ticker: tk.C, } etcdserver.Start(s)