mirror of
https://github.com/soypat/lneto.git
synced 2026-07-26 10:38:47 +00:00
46d4c06b9f
- http/httpraw: cap header slice growth to pre-allocated capacity, fix benchmark to reuse Header across iterations (0 allocs/op) - internal/ring: replace TODO panic comments with invariant explanations - tcp/conn: document truncated-frame offset check - tcp/handler: replace TODO with net.ErrClosed on RST-closed connection - internet/stack-udpport: filter incoming packets by remote IP address when configured via SetStackNode; skip filter for IPv4 multicast destinations (class D) so mDNS and similar protocols work correctly Generated with LLM assistance. Signed-off-by: Marvin Drees <marvin.drees@9elements.com>
27 lines
721 B
Go
27 lines
721 B
Go
package internal
|
|
|
|
import "testing"
|
|
|
|
func TestIsMulticastIPAddr(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
addr []byte
|
|
want bool
|
|
}{
|
|
{"ipv4 multicast", []byte{224, 0, 0, 1}, true},
|
|
{"ipv4 multicast upper", []byte{239, 255, 255, 255}, true},
|
|
{"ipv4 unicast", []byte{192, 0, 2, 1}, false},
|
|
{"ipv6 multicast", []byte{0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, true},
|
|
{"ipv6 unicast", []byte{0x20, 0x01, 0x0d, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, false},
|
|
{"invalid length", []byte{224}, false},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := IsMulticastIPAddr(tt.addr); got != tt.want {
|
|
t.Fatalf("got %t; want %t", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|