Audit changes

This commit is contained in:
jdl
2026-06-14 09:04:41 +02:00
parent 164d1f9d95
commit 3e630ee0ad
3 changed files with 17 additions and 11 deletions

View File

@@ -12,15 +12,7 @@ import (
)
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,
})
}
limiters := map[netip.Addr]*ratelimiter.Limiter{}
for {
if err := receiver(selfVPNIP, limiters, ch); err != nil {
log.Printf("[MCReader] %v", err)
@@ -29,7 +21,7 @@ func Receiver(selfVPNIP netip.Addr, ch chan<- Packet) {
}
}
func receiver(selfVPNIP netip.Addr, limiters []*ratelimiter.Limiter, ch chan<- Packet) error {
func receiver(selfVPNIP netip.Addr, limiters map[netip.Addr]*ratelimiter.Limiter, ch chan<- Packet) error {
selfIP := selfVPNIP.As4()[3]
addr := multicastAddr(selfVPNIP)
@@ -69,7 +61,18 @@ func receiver(selfVPNIP netip.Addr, limiters []*ratelimiter.Limiter, ch chan<- P
continue
}
if err := limiters[packet.PeerIP].Limit(); err != nil {
srcAddr := src.Addr().Unmap()
lim, ok := limiters[srcAddr]
if !ok {
lim = ratelimiter.New(ratelimiter.Config{
BurstLimit: 1,
FillPeriod: broadcastInterval / 2,
MaxWaitCount: 0,
})
limiters[srcAddr] = lim
}
if err := lim.Limit(); err != nil {
log.Printf("Rate limited packet from peer IP %d.", packet.PeerIP)
continue
}