go-ipfs-config: fix string formatting of bootstrap peers
Steven Allen committed
Jun 1, 2019 at 09:00 UTC
e9c30cf35647e317588dec94c9cdc7a8b19ca7d1
2 files changed
+34
-3
config/bootstrap_peers.go
+10
-3
@@ -73,9 +73,16 @@ func ParseBootstrapPeers(addrs []string) ([]peer.AddrInfo, error) {
73
// BootstrapPeerStrings formats a list of AddrInfos as a bootstrap peer list
74
// suitable for serialization.
75
func BootstrapPeerStrings(bps []peer.AddrInfo) []string {
76
- bpss := make([]string, len(bps))
77
- for i, p := range bps {
78
- bpss[i] = p.String()
76
+ bpss := make([]string, 0, len(bps))
77
+ for _, pi := range bps {
78
+ addrs, err := peer.AddrInfoToP2pAddrs(&pi)
79
+ if err != nil {
80
+ // programmer error.
81
+ panic(err)
82
+ }
83
+ for _, addr := range addrs {
84
+ bpss = append(bpss, addr.String())
85
+ }
86
}
87
return bpss
88
}
config/bootstrap_peers_test.go
new
+24
@@ -0,0 +1,24 @@
1
+package config
2
+
3
+import (
4
+ "sort"
5
+ "testing"
6
+)
7
+
8
+func TestBoostrapPeerStrings(t *testing.T) {
9
+ parsed, err := ParseBootstrapPeers(DefaultBootstrapAddresses)
10
+ if err != nil {
11
+ t.Fatal(err)
12
+ }
13
+
14
+ formatted := BootstrapPeerStrings(parsed)
15
+ sort.Strings(formatted)
16
+ expected := append([]string{}, DefaultBootstrapAddresses...)
17
+ sort.Strings(expected)
18
+
19
+ for i, s := range formatted {
20
+ if expected[i] != s {
21
+ t.Fatalf("expected %s, %s", expected[i], s)
22
+ }
23
+ }
24
+}