add dhcp failing test

This commit is contained in:
soypat
2025-06-17 02:07:11 -03:00
parent 47eae76dcf
commit 2133966a16
17 changed files with 596 additions and 195 deletions
+12 -6
View File
@@ -10,18 +10,22 @@ var (
errInvalidIPVersionToSetAddr = errors.New("invalid ip version to setDstAddr")
)
func GetIPSourceAddr(buf []byte) (addr []byte, id uint16, err error) {
version := buf[0] >> 4
switch version { //
func GetIPSourceAddr(buf []byte) (addr []byte, id, ipEndOff uint16, err error) {
b0 := buf[0]
version := b0 >> 4
switch version {
case 4:
addr = buf[12:16]
ihl := b0 & 0xf
ipEndOff = 4 * uint16(ihl)
id = binary.BigEndian.Uint16(buf[4:6])
addr = buf[12:16]
case 6:
addr = buf[8:24]
ipEndOff = 40
default:
err = errUnsupportedIP
}
return addr, id, err
return addr, id, ipEndOff, err
}
func SetIPDestinationAddr(buf []byte, id uint16, addr []byte) (err error) {
@@ -30,7 +34,9 @@ func SetIPDestinationAddr(buf []byte, id uint16, addr []byte) (err error) {
switch version {
case 4:
dstaddr = buf[16:20]
binary.BigEndian.PutUint16(buf[4:6], id)
if id > 0 {
binary.BigEndian.PutUint16(buf[4:6], id)
}
case 6:
dstaddr = buf[24:40]
default: