Skip to content
This repository was archived by the owner on Feb 1, 2023. It is now read-only.

Commit b1a82dc

Browse files
committed
refactor(sessions): minor cleanup
Encapsulate functions for readability, and move code for understanding
1 parent a0fd23c commit b1a82dc

File tree

3 files changed

+23
-21
lines changed

3 files changed

+23
-21
lines changed

session/session.go

+1-4
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ func (s *Session) cidIsWanted(c cid.Cid) bool {
333333
func (s *Session) receiveBlock(ctx context.Context, blk blocks.Block) {
334334
c := blk.Cid()
335335
if s.cidIsWanted(c) {
336+
s.srs.RecordUniqueBlock()
336337
tval, ok := s.liveWants[c]
337338
if ok {
338339
s.latTotal += time.Since(tval)
@@ -363,10 +364,6 @@ func (s *Session) updateReceiveCounters(ctx context.Context, blk blkRecv) {
363364
ks := blk.blk.Cid()
364365
if s.pastWants.Has(ks) {
365366
s.srs.RecordDuplicateBlock()
366-
} else {
367-
if s.cidIsWanted(ks) {
368-
s.srs.RecordUniqueBlock()
369-
}
370367
}
371368
}
372369

session/session_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ func TestSessionFindMorePeers(t *testing.T) {
174174
wantReqs := make(chan wantReq, 1)
175175
cancelReqs := make(chan wantReq, 1)
176176
fwm := &fakeWantManager{wantReqs, cancelReqs}
177-
fpm := &fakePeerManager{findMorePeersRequested: make(chan struct{})}
177+
fpm := &fakePeerManager{findMorePeersRequested: make(chan struct{}, 1)}
178178
frs := &fakeRequestSplitter{}
179179
id := testutil.GenerateSessionID()
180180
session := New(ctx, id, fwm, fpm, frs)

sessionpeermanager/sessionpeermanager.go

+21-16
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,25 @@ func (spm *SessionPeerManager) insertOptimizedPeer(p peer.ID) {
134134
spm.optimizedPeersArr = append([]peer.ID{p}, spm.optimizedPeersArr...)
135135
}
136136

137+
func (spm *SessionPeerManager) removeOptimizedPeer(p peer.ID) {
138+
for i := 0; i < len(spm.optimizedPeersArr); i++ {
139+
if spm.optimizedPeersArr[i] == p {
140+
spm.optimizedPeersArr = append(spm.optimizedPeersArr[:i], spm.optimizedPeersArr[i+1:]...)
141+
return
142+
}
143+
}
144+
}
145+
146+
func (spm *SessionPeerManager) removeUnoptimizedPeer(p peer.ID) {
147+
for i := 0; i < len(spm.unoptimizedPeersArr); i++ {
148+
if spm.unoptimizedPeersArr[i] == p {
149+
spm.unoptimizedPeersArr[i] = spm.unoptimizedPeersArr[len(spm.unoptimizedPeersArr)-1]
150+
spm.unoptimizedPeersArr = spm.unoptimizedPeersArr[:len(spm.unoptimizedPeersArr)-1]
151+
return
152+
}
153+
}
154+
}
155+
137156
type peerFoundMessage struct {
138157
p peer.ID
139158
}
@@ -160,24 +179,10 @@ func (prm *peerResponseMessage) handle(spm *SessionPeerManager) {
160179
spm.tagPeer(p)
161180
} else {
162181
if isOptimized {
163-
if spm.optimizedPeersArr[0] == p {
164-
return
165-
}
166-
for i := 0; i < len(spm.optimizedPeersArr); i++ {
167-
if spm.optimizedPeersArr[i] == p {
168-
spm.optimizedPeersArr = append(spm.optimizedPeersArr[:i], spm.optimizedPeersArr[i+1:]...)
169-
break
170-
}
171-
}
182+
spm.removeOptimizedPeer(p)
172183
} else {
173184
spm.activePeers[p] = true
174-
for i := 0; i < len(spm.unoptimizedPeersArr); i++ {
175-
if spm.unoptimizedPeersArr[i] == p {
176-
spm.unoptimizedPeersArr[i] = spm.unoptimizedPeersArr[len(spm.unoptimizedPeersArr)-1]
177-
spm.unoptimizedPeersArr = spm.unoptimizedPeersArr[:len(spm.unoptimizedPeersArr)-1]
178-
break
179-
}
180-
}
185+
spm.removeUnoptimizedPeer(p)
181186
}
182187
}
183188
spm.insertOptimizedPeer(p)

0 commit comments

Comments
 (0)