|
|
@@ -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,13 +50,20 @@ 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 {
|
|
|
- return "todo"
|
|
|
+func (ps *Peers) String() string {
|
|
|
+ v := url.Values{}
|
|
|
+ for k, vv := range *ps {
|
|
|
+ for i := range vv {
|
|
|
+ v.Add(strconv.FormatInt(k, 16), vv[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return v.Encode()
|
|
|
}
|
|
|
|
|
|
func (ps Peers) Ids() []int64 {
|