fix(peer): use error-checking multiaddr method
License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
Brian Tiger Chow committed
Dec 7, 2014 at 23:57 UTC
3f63e50c547feaaf93eef639380a610fb71b572f
3 files changed
+16
-4
core/commands/swarm.go
+5
-1
@@ -149,8 +149,12 @@ func splitAddresses(addrs []string) (maddrs []ma.Multiaddr, pids []peer.ID, err
149
if err != nil {
150
return nil, nil, cmds.ClientError("invalid peer address: " + err.Error())
151
}
152
+ id, err := peer.DecodePrettyID(path.Base(addr))
153
+ if err != nil {
154
+ return nil, nil, err
155
+ }
156
+ pids[i] = id
157
maddrs[i] = a
153
- pids[i] = peer.DecodePrettyID(path.Base(addr))
158
}
159
return
160
}
core/core.go
+5
-1
@@ -265,7 +265,11 @@ func initConnections(ctx context.Context, cfg *config.Config, pstore peer.Peerst
265
}
266
267
// setup peer
268
- npeer, err := pstore.Get(peer.DecodePrettyID(p.PeerID))
268
+ id, err := peer.DecodePrettyID(p.PeerID)
269
+ if err != nil {
270
+ // return err
271
+ }
272
+ npeer, err := pstore.Get(id)
273
if err != nil {
274
log.Criticalf("Bootstrapping error: %v", err)
275
continue
peer/peer.go
+6
-2
@@ -37,8 +37,12 @@ func (id ID) Pretty() string {
37
}
38
39
// DecodePrettyID returns a b58-encoded string of the ID
40
-func DecodePrettyID(s string) ID {
41
- return b58.Decode(s)
40
+func DecodePrettyID(s string) (ID, error) {
41
+ m, err := mh.FromB58String(s)
42
+ if err != nil {
43
+ return nil, err
44
+ }
45
+ return ID(m), err
46
}
47
48
// IDFromPubKey retrieves a Public Key from the peer given by pk