Audit changes.

This commit is contained in:
jdl
2026-06-13 15:42:40 +02:00
parent 1f7d3151b5
commit 243e75dd09

View File

@@ -7,18 +7,29 @@ import (
"net"
"net/netip"
"time"
"git.crumpington.com/lib/go/ratelimiter"
)
func Receiver(selfVPNIP netip.Addr, ch chan<- Packet) {
limiters := make([]*ratelimiter.Limiter, 256)
for i := range limiters {
limiters[i] = ratelimiter.New(ratelimiter.Config{
BurstLimit: 1,
FillPeriod: broadcastInterval / 2,
MaxWaitCount: 0,
})
}
for {
if err := receiver(selfVPNIP, ch); err != nil {
if err := receiver(selfVPNIP, limiters, ch); err != nil {
log.Printf("[MCReader] %v", err)
}
time.Sleep(errorTimeout)
}
}
func receiver(selfVPNIP netip.Addr, ch chan<- Packet) error {
func receiver(selfVPNIP netip.Addr, limiters []*ratelimiter.Limiter, ch chan<- Packet) error {
selfIP := selfVPNIP.As4()[3]
conn, err := net.ListenMulticastUDP("udp", nil, multicastAddr(selfVPNIP))
@@ -44,6 +55,9 @@ func receiver(selfVPNIP netip.Addr, ch chan<- Packet) error {
}
packet := unmarshal(buf[:n])
if err := limiters[packet.PeerIP].Limit(); err != nil {
continue
}
if packet.PeerIP == selfIP {
continue