packetaddr_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package packetaddr
  2. import (
  3. sysnet "net"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. "github.com/v2fly/v2ray-core/v5/common/buf"
  7. )
  8. func TestPacketEncodingIPv4(t *testing.T) {
  9. packetAddress := &sysnet.UDPAddr{
  10. IP: sysnet.IPv4(1, 2, 3, 4).To4(),
  11. Port: 1234,
  12. }
  13. var packetData [256]byte
  14. wrapped, err := AttachAddressToPacket(buf.FromBytes(packetData[:]), packetAddress)
  15. assert.NoError(t, err)
  16. packetPayload, decodedAddress, err := ExtractAddressFromPacket(wrapped)
  17. assert.NoError(t, err)
  18. assert.Equal(t, packetPayload.Bytes(), packetData[:])
  19. assert.Equal(t, packetAddress, decodedAddress)
  20. }
  21. func TestPacketEncodingIPv6(t *testing.T) {
  22. packetAddress := &sysnet.UDPAddr{
  23. IP: sysnet.IPv6linklocalallrouters,
  24. Port: 1234,
  25. }
  26. var packetData [256]byte
  27. wrapped, err := AttachAddressToPacket(buf.FromBytes(packetData[:]), packetAddress)
  28. assert.NoError(t, err)
  29. packetPayload, decodedAddress, err := ExtractAddressFromPacket(wrapped)
  30. assert.NoError(t, err)
  31. assert.Equal(t, packetPayload.Bytes(), packetData[:])
  32. assert.Equal(t, packetAddress, decodedAddress)
  33. }