12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package iputil
- import (
- "net"
- "testing"
- "github.com/stretchr/testify/assert"
- "golang.org/x/net/ipv4"
- )
- func Test_CreateRejectPacket(t *testing.T) {
- h := ipv4.Header{
- Len: 20,
- Src: net.IPv4(10, 0, 0, 1),
- Dst: net.IPv4(10, 0, 0, 2),
- Protocol: 1, // ICMP
- }
- b, err := h.Marshal()
- if err != nil {
- t.Fatalf("h.Marhshal: %v", err)
- }
- b = append(b, []byte{0, 3, 0, 4}...)
- expectedLen := ipv4.HeaderLen + 8 + h.Len + 4
- out := make([]byte, expectedLen)
- rejectPacket := CreateRejectPacket(b, out)
- assert.NotNil(t, rejectPacket)
- assert.Len(t, rejectPacket, expectedLen)
- // ICMP with max header len
- h = ipv4.Header{
- Len: 60,
- Src: net.IPv4(10, 0, 0, 1),
- Dst: net.IPv4(10, 0, 0, 2),
- Protocol: 1, // ICMP
- Options: make([]byte, 40),
- }
- b, err = h.Marshal()
- if err != nil {
- t.Fatalf("h.Marhshal: %v", err)
- }
- b = append(b, []byte{0, 3, 0, 4, 0, 0, 0, 0}...)
- expectedLen = MaxRejectPacketSize
- out = make([]byte, MaxRejectPacketSize)
- rejectPacket = CreateRejectPacket(b, out)
- assert.NotNil(t, rejectPacket)
- assert.Len(t, rejectPacket, expectedLen)
- // TCP with max header len
- h = ipv4.Header{
- Len: 60,
- Src: net.IPv4(10, 0, 0, 1),
- Dst: net.IPv4(10, 0, 0, 2),
- Protocol: 6, // TCP
- Options: make([]byte, 40),
- }
- b, err = h.Marshal()
- if err != nil {
- t.Fatalf("h.Marhshal: %v", err)
- }
- b = append(b, []byte{0, 3, 0, 4}...)
- b = append(b, make([]byte, 16)...)
- expectedLen = ipv4.HeaderLen + 20
- out = make([]byte, expectedLen)
- rejectPacket = CreateRejectPacket(b, out)
- assert.NotNil(t, rejectPacket)
- assert.Len(t, rejectPacket, expectedLen)
- }
|