5
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2024-11-09 16:20:26 +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) {
ticker := time.NewTicker(time.Second)
defer ticker.Stop()
p.lastSend = time.Now()
var counter uint8
var lastRSeq uint64
for {
select {
@ -151,7 +151,7 @@ func (p *peer) linkLoop(in <-chan []byte) {
update = true
case p.msgAnc.rseq != p.myMsg.seq:
update = true
case time.Since(p.lastSend) > 3*time.Second:
case counter%4 == 0:
update = true
}
if update {
@ -161,6 +161,7 @@ func (p *peer) linkLoop(in <-chan []byte) {
p.lastSend = time.Now()
p.sendSwitchAnnounce()
}
counter = (counter + 1) % 4
}
}
}