Skip to content

Commit d0f9caf

Browse files
committed
support fanout topics for partial messages
1 parent fa36bd2 commit d0f9caf

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

extensions.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,16 @@ type partialMessageRouter struct {
202202
// MeshPeers implements partialmessages.Router.
203203
func (r partialMessageRouter) MeshPeers(topic string) iter.Seq[peer.ID] {
204204
return func(yield func(peer.ID) bool) {
205-
for peer := range r.gs.mesh[topic] {
205+
peerSet, ok := r.gs.mesh[topic]
206+
if !ok {
207+
// Possible a fanout topic
208+
peerSet, ok = r.gs.fanout[topic]
209+
if !ok {
210+
return
211+
}
212+
}
213+
214+
for peer := range peerSet {
206215
if exts := r.gs.extensions.peerExtensions[peer]; exts.PartialMessages {
207216
if peerStates, ok := r.gs.p.topics[topic]; ok && peerStates[peer].requestsPartial {
208217
// Check that the peer wanted partial messages

0 commit comments

Comments
 (0)