Skip to content

Commit 138cb80

Browse files
committed
refactor: move protocol messenger to pb package
1 parent 9977256 commit 138cb80

File tree

2 files changed

+17
-19
lines changed

2 files changed

+17
-19
lines changed

dht.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
pb "github.com/libp2p/go-libp2p-kad-dht/pb"
2121
"github.com/libp2p/go-libp2p-kad-dht/providers"
2222
"github.com/libp2p/go-libp2p-kad-dht/rtrefresh"
23-
"github.com/libp2p/go-libp2p-kad-dht/wire"
2423
kb "github.com/libp2p/go-libp2p-kbucket"
2524
"github.com/libp2p/go-libp2p-kbucket/peerdiversity"
2625
record "github.com/libp2p/go-libp2p-record"
@@ -96,7 +95,7 @@ type IpfsDHT struct {
9695
ctx context.Context
9796
proc goprocess.Process
9897

99-
protoMessenger *wire.ProtocolMessenger
98+
protoMessenger *pb.ProtocolMessenger
10099
messageMgr *messageManager
101100

102101
plk sync.Mutex
@@ -194,7 +193,7 @@ func New(ctx context.Context, h host.Host, options ...Option) (*IpfsDHT, error)
194193
strmap: make(map[peer.ID]*messageSender),
195194
protocols: dht.protocols,
196195
}
197-
dht.protoMessenger, err = wire.NewProtocolMessenger(dht.messageMgr, wire.WithValidator(dht.Validator))
196+
dht.protoMessenger, err = pb.NewProtocolMessenger(dht.messageMgr, pb.WithValidator(dht.Validator))
198197
if err != nil {
199198
return nil, err
200199
}

wire/messages.go renamed to pb/protocol_messenger.go

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wire
1+
package dht_pb
22

33
import (
44
"bytes"
@@ -16,7 +16,6 @@ import (
1616
"github.com/multiformats/go-multihash"
1717

1818
"github.com/libp2p/go-libp2p-kad-dht/internal"
19-
pb "github.com/libp2p/go-libp2p-kad-dht/pb"
2019
)
2120

2221
var logger = logging.Logger("dht")
@@ -60,14 +59,14 @@ func NewProtocolMessenger(msgSender MessageSender, opts ...ProtocolMessengerOpti
6059
// MessageSender handles sending wire protocol messages to a given peer
6160
type MessageSender interface {
6261
// SendRequest sends a peer a message and waits for its response
63-
SendRequest(ctx context.Context, p peer.ID, pmes *pb.Message) (*pb.Message, error)
62+
SendRequest(ctx context.Context, p peer.ID, pmes *Message) (*Message, error)
6463
// SendMessage sends a peer a message without waiting on a response
65-
SendMessage(ctx context.Context, p peer.ID, pmes *pb.Message) error
64+
SendMessage(ctx context.Context, p peer.ID, pmes *Message) error
6665
}
6766

6867
// PutValue asks a peer to store the given key/value pair.
6968
func (pm *ProtocolMessenger) PutValue(ctx context.Context, p peer.ID, rec *recpb.Record) error {
70-
pmes := pb.NewMessage(pb.Message_PUT_VALUE, rec.Key, 0)
69+
pmes := NewMessage(Message_PUT_VALUE, rec.Key, 0)
7170
pmes.Record = rec
7271
rpmes, err := pm.m.SendRequest(ctx, p, pmes)
7372
if err != nil {
@@ -86,14 +85,14 @@ func (pm *ProtocolMessenger) PutValue(ctx context.Context, p peer.ID, rec *recpb
8685
// GetValue asks a peer for the value corresponding to the given key. Also returns the K closest peers to the key
8786
// as described in GetClosestPeers.
8887
func (pm *ProtocolMessenger) GetValue(ctx context.Context, p peer.ID, key string) (*recpb.Record, []*peer.AddrInfo, error) {
89-
pmes := pb.NewMessage(pb.Message_GET_VALUE, []byte(key), 0)
88+
pmes := NewMessage(Message_GET_VALUE, []byte(key), 0)
9089
respMsg, err := pm.m.SendRequest(ctx, p, pmes)
9190
if err != nil {
9291
return nil, nil, err
9392
}
9493

9594
// Perhaps we were given closer peers
96-
peers := pb.PBPeersToPeerInfos(respMsg.GetCloserPeers())
95+
peers := PBPeersToPeerInfos(respMsg.GetCloserPeers())
9796

9897
if rec := respMsg.GetRecord(); rec != nil {
9998
// Success! We were given the value
@@ -120,12 +119,12 @@ func (pm *ProtocolMessenger) GetValue(ctx context.Context, p peer.ID, key string
120119
// Note: If the peer happens to know another peer whose peerID exactly matches the given id it will return that peer
121120
// even if that peer is not a DHT server node.
122121
func (pm *ProtocolMessenger) GetClosestPeers(ctx context.Context, p peer.ID, id peer.ID) ([]*peer.AddrInfo, error) {
123-
pmes := pb.NewMessage(pb.Message_FIND_NODE, []byte(id), 0)
122+
pmes := NewMessage(Message_FIND_NODE, []byte(id), 0)
124123
respMsg, err := pm.m.SendRequest(ctx, p, pmes)
125124
if err != nil {
126125
return nil, err
127126
}
128-
peers := pb.PBPeersToPeerInfos(respMsg.GetCloserPeers())
127+
peers := PBPeersToPeerInfos(respMsg.GetCloserPeers())
129128
return peers, nil
130129
}
131130

@@ -142,33 +141,33 @@ func (pm *ProtocolMessenger) PutProvider(ctx context.Context, p peer.ID, key mul
142141
return fmt.Errorf("no known addresses for self, cannot put provider")
143142
}
144143

145-
pmes := pb.NewMessage(pb.Message_ADD_PROVIDER, key, 0)
146-
pmes.ProviderPeers = pb.RawPeerInfosToPBPeers([]peer.AddrInfo{pi})
144+
pmes := NewMessage(Message_ADD_PROVIDER, key, 0)
145+
pmes.ProviderPeers = RawPeerInfosToPBPeers([]peer.AddrInfo{pi})
147146

148147
return pm.m.SendMessage(ctx, p, pmes)
149148
}
150149

151150
// GetProviders asks a peer for the providers it knows of for a given key. Also returns the K closest peers to the key
152151
// as described in GetClosestPeers.
153152
func (pm *ProtocolMessenger) GetProviders(ctx context.Context, p peer.ID, key multihash.Multihash) ([]*peer.AddrInfo, []*peer.AddrInfo, error) {
154-
pmes := pb.NewMessage(pb.Message_GET_PROVIDERS, key, 0)
153+
pmes := NewMessage(Message_GET_PROVIDERS, key, 0)
155154
respMsg, err := pm.m.SendRequest(ctx, p, pmes)
156155
if err != nil {
157156
return nil, nil, err
158157
}
159-
provs := pb.PBPeersToPeerInfos(respMsg.GetProviderPeers())
160-
closerPeers := pb.PBPeersToPeerInfos(respMsg.GetCloserPeers())
158+
provs := PBPeersToPeerInfos(respMsg.GetProviderPeers())
159+
closerPeers := PBPeersToPeerInfos(respMsg.GetCloserPeers())
161160
return provs, closerPeers, nil
162161
}
163162

164163
// Ping sends a ping message to the passed peer and waits for a response.
165164
func (pm *ProtocolMessenger) Ping(ctx context.Context, p peer.ID) error {
166-
req := pb.NewMessage(pb.Message_PING, nil, 0)
165+
req := NewMessage(Message_PING, nil, 0)
167166
resp, err := pm.m.SendRequest(ctx, p, req)
168167
if err != nil {
169168
return fmt.Errorf("sending request: %w", err)
170169
}
171-
if resp.Type != pb.Message_PING {
170+
if resp.Type != Message_PING {
172171
return fmt.Errorf("got unexpected response type: %v", resp.Type)
173172
}
174173
return nil

0 commit comments

Comments
 (0)