1
0

stun_test.go 794 B

1234567891011121314151617181920212223242526272829303132
  1. package sniff_test
  2. import (
  3. "context"
  4. "encoding/hex"
  5. "testing"
  6. "github.com/sagernet/sing-box/adapter"
  7. "github.com/sagernet/sing-box/common/sniff"
  8. C "github.com/sagernet/sing-box/constant"
  9. "github.com/stretchr/testify/require"
  10. )
  11. func TestSniffSTUN(t *testing.T) {
  12. t.Parallel()
  13. packet, err := hex.DecodeString("000100002112a44224b1a025d0c180c484341306")
  14. require.NoError(t, err)
  15. var metadata adapter.InboundContext
  16. err = sniff.STUNMessage(context.Background(), &metadata, packet)
  17. require.NoError(t, err)
  18. require.Equal(t, metadata.Protocol, C.ProtocolSTUN)
  19. }
  20. func FuzzSniffSTUN(f *testing.F) {
  21. f.Fuzz(func(t *testing.T, data []byte) {
  22. var metadata adapter.InboundContext
  23. if err := sniff.STUNMessage(context.Background(), &metadata, data); err == nil {
  24. t.Fail()
  25. }
  26. })
  27. }