packetaddr_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package packetaddr
  2. import (
  3. "github.com/stretchr/testify/assert"
  4. "github.com/v2fly/v2ray-core/v4/common/buf"
  5. sysnet "net"
  6. "testing"
  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. }