5
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2024-11-25 23:01:38 +00:00

Slightly nicer way to throttle peer announcements

This commit is contained in:
Arceliar 2018-02-17 23:41:42 -06:00
parent 0fc7401635
commit a66a29779a

View File

@ -127,7 +127,7 @@ func (ps *peers) newPeer(box *boxPubKey,
func (p *peer) linkLoop(in <-chan []byte) { func (p *peer) linkLoop(in <-chan []byte) {
ticker := time.NewTicker(time.Second) ticker := time.NewTicker(time.Second)
defer ticker.Stop() defer ticker.Stop()
p.lastSend = time.Now() var counter uint8
var lastRSeq uint64 var lastRSeq uint64
for { for {
select { select {
@ -151,7 +151,7 @@ func (p *peer) linkLoop(in <-chan []byte) {
update = true update = true
case p.msgAnc.rseq != p.myMsg.seq: case p.msgAnc.rseq != p.myMsg.seq:
update = true update = true
case time.Since(p.lastSend) > 3*time.Second: case counter%4 == 0:
update = true update = true
} }
if update { if update {
@ -161,6 +161,7 @@ func (p *peer) linkLoop(in <-chan []byte) {
p.lastSend = time.Now() p.lastSend = time.Now()
p.sendSwitchAnnounce() p.sendSwitchAnnounce()
} }
counter = (counter + 1) % 4
} }
} }
} }