mirror of
https://github.com/libp2p/go-libp2p-peerstore.git
synced 2025-01-28 04:50:07 +08:00
Merge pull request #173 from libp2p/remove-leftover-peerstore
remove leftover peerstore implementation in the root package
This commit is contained in:
commit
986d5ceedb
58
peerstore.go
58
peerstore.go
@ -1,68 +1,10 @@
|
||||
package peerstore
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"github.com/libp2p/go-libp2p-core/peer"
|
||||
pstore "github.com/libp2p/go-libp2p-core/peerstore"
|
||||
)
|
||||
|
||||
var _ pstore.Peerstore = (*peerstore)(nil)
|
||||
|
||||
type peerstore struct {
|
||||
pstore.Metrics
|
||||
|
||||
pstore.KeyBook
|
||||
pstore.AddrBook
|
||||
pstore.ProtoBook
|
||||
pstore.PeerMetadata
|
||||
}
|
||||
|
||||
func (ps *peerstore) Close() (err error) {
|
||||
var errs []error
|
||||
weakClose := func(name string, c interface{}) {
|
||||
if cl, ok := c.(io.Closer); ok {
|
||||
if err = cl.Close(); err != nil {
|
||||
errs = append(errs, fmt.Errorf("%s error: %s", name, err))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
weakClose("keybook", ps.KeyBook)
|
||||
weakClose("addressbook", ps.AddrBook)
|
||||
weakClose("protobook", ps.ProtoBook)
|
||||
weakClose("peermetadata", ps.PeerMetadata)
|
||||
|
||||
if len(errs) > 0 {
|
||||
return fmt.Errorf("failed while closing peerstore; err(s): %q", errs)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ps *peerstore) Peers() peer.IDSlice {
|
||||
set := map[peer.ID]struct{}{}
|
||||
for _, p := range ps.PeersWithKeys() {
|
||||
set[p] = struct{}{}
|
||||
}
|
||||
for _, p := range ps.PeersWithAddrs() {
|
||||
set[p] = struct{}{}
|
||||
}
|
||||
|
||||
pps := make(peer.IDSlice, 0, len(set))
|
||||
for p := range set {
|
||||
pps = append(pps, p)
|
||||
}
|
||||
return pps
|
||||
}
|
||||
|
||||
func (ps *peerstore) PeerInfo(p peer.ID) peer.AddrInfo {
|
||||
return peer.AddrInfo{
|
||||
ID: p,
|
||||
Addrs: ps.AddrBook.Addrs(p),
|
||||
}
|
||||
}
|
||||
|
||||
func PeerInfos(ps pstore.Peerstore, peers peer.IDSlice) []peer.AddrInfo {
|
||||
pi := make([]peer.AddrInfo, len(peers))
|
||||
for i, p := range peers {
|
||||
|
Loading…
Reference in New Issue
Block a user