mirror of
https://github.com/netbirdio/netbird.git
synced 2025-06-20 17:58:02 +02:00
Remove some allocations
This commit is contained in:
parent
50ac3d437e
commit
631b77dc3c
@ -170,11 +170,11 @@ func (m *Manager) rewritePacketDestination(packetData []byte, d *decoder, newIP
|
|||||||
return fmt.Errorf("only IPv4 supported")
|
return fmt.Errorf("only IPv4 supported")
|
||||||
}
|
}
|
||||||
|
|
||||||
oldDst := make([]byte, 4)
|
var oldDst [4]byte
|
||||||
copy(oldDst, packetData[16:20])
|
copy(oldDst[:], packetData[16:20])
|
||||||
newDst := newIP.AsSlice()
|
newDst := newIP.As4()
|
||||||
|
|
||||||
copy(packetData[16:20], newDst)
|
copy(packetData[16:20], newDst[:])
|
||||||
|
|
||||||
ipHeaderLen := int(d.ip4.IHL) * 4
|
ipHeaderLen := int(d.ip4.IHL) * 4
|
||||||
binary.BigEndian.PutUint16(packetData[10:12], 0)
|
binary.BigEndian.PutUint16(packetData[10:12], 0)
|
||||||
@ -184,9 +184,9 @@ func (m *Manager) rewritePacketDestination(packetData []byte, d *decoder, newIP
|
|||||||
if len(d.decoded) > 1 {
|
if len(d.decoded) > 1 {
|
||||||
switch d.decoded[1] {
|
switch d.decoded[1] {
|
||||||
case layers.LayerTypeTCP:
|
case layers.LayerTypeTCP:
|
||||||
m.updateTCPChecksum(packetData, ipHeaderLen, oldDst, newDst)
|
m.updateTCPChecksum(packetData, ipHeaderLen, oldDst[:], newDst[:])
|
||||||
case layers.LayerTypeUDP:
|
case layers.LayerTypeUDP:
|
||||||
m.updateUDPChecksum(packetData, ipHeaderLen, oldDst, newDst)
|
m.updateUDPChecksum(packetData, ipHeaderLen, oldDst[:], newDst[:])
|
||||||
case layers.LayerTypeICMPv4:
|
case layers.LayerTypeICMPv4:
|
||||||
m.updateICMPChecksum(packetData, ipHeaderLen)
|
m.updateICMPChecksum(packetData, ipHeaderLen)
|
||||||
}
|
}
|
||||||
@ -201,11 +201,11 @@ func (m *Manager) rewritePacketSource(packetData []byte, d *decoder, newIP netip
|
|||||||
return fmt.Errorf("only IPv4 supported")
|
return fmt.Errorf("only IPv4 supported")
|
||||||
}
|
}
|
||||||
|
|
||||||
oldSrc := make([]byte, 4)
|
var oldSrc [4]byte
|
||||||
copy(oldSrc, packetData[12:16])
|
copy(oldSrc[:], packetData[12:16])
|
||||||
newSrc := newIP.AsSlice()
|
newSrc := newIP.As4()
|
||||||
|
|
||||||
copy(packetData[12:16], newSrc)
|
copy(packetData[12:16], newSrc[:])
|
||||||
|
|
||||||
ipHeaderLen := int(d.ip4.IHL) * 4
|
ipHeaderLen := int(d.ip4.IHL) * 4
|
||||||
binary.BigEndian.PutUint16(packetData[10:12], 0)
|
binary.BigEndian.PutUint16(packetData[10:12], 0)
|
||||||
@ -215,9 +215,9 @@ func (m *Manager) rewritePacketSource(packetData []byte, d *decoder, newIP netip
|
|||||||
if len(d.decoded) > 1 {
|
if len(d.decoded) > 1 {
|
||||||
switch d.decoded[1] {
|
switch d.decoded[1] {
|
||||||
case layers.LayerTypeTCP:
|
case layers.LayerTypeTCP:
|
||||||
m.updateTCPChecksum(packetData, ipHeaderLen, oldSrc, newSrc)
|
m.updateTCPChecksum(packetData, ipHeaderLen, oldSrc[:], newSrc[:])
|
||||||
case layers.LayerTypeUDP:
|
case layers.LayerTypeUDP:
|
||||||
m.updateUDPChecksum(packetData, ipHeaderLen, oldSrc, newSrc)
|
m.updateUDPChecksum(packetData, ipHeaderLen, oldSrc[:], newSrc[:])
|
||||||
case layers.LayerTypeICMPv4:
|
case layers.LayerTypeICMPv4:
|
||||||
m.updateICMPChecksum(packetData, ipHeaderLen)
|
m.updateICMPChecksum(packetData, ipHeaderLen)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user