ntp_test.go 975 B

123456789101112131415161718192021222324252627282930313233
  1. package sniff_test
  2. import (
  3. "context"
  4. "encoding/hex"
  5. "os"
  6. "testing"
  7. "github.com/sagernet/sing-box/adapter"
  8. "github.com/sagernet/sing-box/common/sniff"
  9. C "github.com/sagernet/sing-box/constant"
  10. "github.com/stretchr/testify/require"
  11. )
  12. func TestSniffNTP(t *testing.T) {
  13. t.Parallel()
  14. packet, err := hex.DecodeString("1b0006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
  15. require.NoError(t, err)
  16. var metadata adapter.InboundContext
  17. err = sniff.NTP(context.Background(), &metadata, packet)
  18. require.NoError(t, err)
  19. require.Equal(t, metadata.Protocol, C.ProtocolNTP)
  20. }
  21. func TestSniffNTPFailed(t *testing.T) {
  22. t.Parallel()
  23. packet, err := hex.DecodeString("400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
  24. require.NoError(t, err)
  25. var metadata adapter.InboundContext
  26. err = sniff.NTP(context.Background(), &metadata, packet)
  27. require.ErrorIs(t, err, os.ErrInvalid)
  28. }