fix: handle peerstore failure case in constructor
License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
Steven Allen committed
Apr 18, 2019 at 00:33 UTC
d83374fd62e6b0b50714cde5b1baa6a33568f275
1 file changed
+8
-4
core/node/libp2p.go
+8
-4
@@ -84,15 +84,19 @@ var DHTOption RoutingOption = constructDHTRouting
84
var DHTClientOption RoutingOption = constructClientDHTRouting
85
var NilRouterOption RoutingOption = nilrouting.ConstructNilRouting
86
87
-func Peerstore(id peer.ID, sk crypto.PrivKey) peerstore.Peerstore {
87
+func Peerstore(id peer.ID, sk crypto.PrivKey) (peerstore.Peerstore, error) {
88
ps := pstoremem.NewPeerstore()
89
90
if sk != nil {
91
- ps.AddPrivKey(id, sk)
92
- ps.AddPubKey(id, sk.GetPublic())
91
+ if err := ps.AddPubKey(id, sk.GetPublic()); err != nil {
92
+ return nil, err
93
+ }
94
+ if err := ps.AddPrivKey(id, sk); err != nil {
95
+ return nil, err
96
+ }
97
}
98
95
- return ps
99
+ return ps, nil
100
}
101
102
func P2PAddrFilters(cfg *config.Config) (opts Libp2pOpts, err error) {