prepare new fields for zero value

This commit is contained in:
Mark Puha 2023-09-27 07:50:51 +02:00
parent 5fbb7fdb08
commit 423aa96f94
2 changed files with 106 additions and 100 deletions

View file

@ -573,113 +573,113 @@ func (device *Device) handlePostConfig(tempASecCfg *aSecCfgType) (err error) {
ipc.IpcErrorInvalid, ipc.IpcErrorInvalid,
"JunkPacketCount should be non negative", "JunkPacketCount should be non negative",
) )
} else if tempASecCfg.junkPacketCount > 0 { }
device.log.Verbosef("UAPI: Updating junk_packet_count") device.aSecCfg.junkPacketCount = tempASecCfg.junkPacketCount
device.aSecCfg.junkPacketCount = tempASecCfg.junkPacketCount if tempASecCfg.junkPacketCount != 0 {
isASecOn = true isASecOn = true
} }
device.aSecCfg.junkPacketMinSize = tempASecCfg.junkPacketMinSize
if tempASecCfg.junkPacketMinSize != 0 { if tempASecCfg.junkPacketMinSize != 0 {
device.log.Verbosef("UAPI: Updating junk_packet_min_size")
device.aSecCfg.junkPacketMinSize = tempASecCfg.junkPacketMinSize
isASecOn = true isASecOn = true
} }
if tempASecCfg.junkPacketMaxSize != 0 {
if tempASecCfg.junkPacketMaxSize == tempASecCfg.junkPacketMinSize { if tempASecCfg.junkPacketMaxSize == tempASecCfg.junkPacketMinSize {
tempASecCfg.junkPacketMaxSize++ // to make rand gen work tempASecCfg.junkPacketMaxSize++ // to make rand gen work
} }
if tempASecCfg.junkPacketMaxSize >= MaxSegmentSize{
device.aSecCfg.junkPacketMinSize = 0 if tempASecCfg.junkPacketMaxSize >= MaxSegmentSize{
device.aSecCfg.junkPacketMaxSize = 1 device.aSecCfg.junkPacketMinSize = 0
if err != nil { device.aSecCfg.junkPacketMaxSize = 1
err = ipcErrorf( if err != nil {
ipc.IpcErrorInvalid, err = ipcErrorf(
"JunkPacketMaxSize: %d; should be smaller than maxSegmentSize: %d; %w", ipc.IpcErrorInvalid,
tempASecCfg.junkPacketMaxSize, "JunkPacketMaxSize: %d; should be smaller than maxSegmentSize: %d; %w",
MaxSegmentSize, tempASecCfg.junkPacketMaxSize,
err, MaxSegmentSize,
) err,
} else { )
err = ipcErrorf(
ipc.IpcErrorInvalid,
"JunkPacketMaxSize: %d; should be smaller than maxSegmentSize: %d",
tempASecCfg.junkPacketMaxSize,
MaxSegmentSize,
)
}
} else if tempASecCfg.junkPacketMaxSize < tempASecCfg.junkPacketMinSize {
if err != nil {
err = ipcErrorf(
ipc.IpcErrorInvalid,
"maxSize: %d; should be greater than minSize: %d; %w",
tempASecCfg.junkPacketMaxSize,
tempASecCfg.junkPacketMinSize,
err,
)
} else {
err = ipcErrorf(
ipc.IpcErrorInvalid,
"maxSize: %d; should be greater than minSize: %d",
tempASecCfg.junkPacketMaxSize,
tempASecCfg.junkPacketMinSize,
)
}
} else { } else {
device.log.Verbosef("UAPI: Updating junk_packet_max_size") err = ipcErrorf(
device.aSecCfg.junkPacketMaxSize = tempASecCfg.junkPacketMaxSize ipc.IpcErrorInvalid,
isASecOn = true "JunkPacketMaxSize: %d; should be smaller than maxSegmentSize: %d",
tempASecCfg.junkPacketMaxSize,
MaxSegmentSize,
)
} }
} else if tempASecCfg.junkPacketMaxSize < tempASecCfg.junkPacketMinSize {
if err != nil {
err = ipcErrorf(
ipc.IpcErrorInvalid,
"maxSize: %d; should be greater than minSize: %d; %w",
tempASecCfg.junkPacketMaxSize,
tempASecCfg.junkPacketMinSize,
err,
)
} else {
err = ipcErrorf(
ipc.IpcErrorInvalid,
"maxSize: %d; should be greater than minSize: %d",
tempASecCfg.junkPacketMaxSize,
tempASecCfg.junkPacketMinSize,
)
}
} else {
device.aSecCfg.junkPacketMaxSize = tempASecCfg.junkPacketMaxSize
} }
if tempASecCfg.junkPacketMaxSize != 0 {
isASecOn = true
}
if MessageInitiationSize+tempASecCfg.initPacketJunkSize >= MaxSegmentSize {
if err != nil {
err = ipcErrorf(
ipc.IpcErrorInvalid,
`init header size(148) + junkSize:%d; should be smaller than maxSegmentSize: %d; %w`,
tempASecCfg.initPacketJunkSize,
MaxSegmentSize,
err,
)
} else {
err = ipcErrorf(
ipc.IpcErrorInvalid,
`init header size(148) + junkSize:%d; should be smaller than maxSegmentSize: %d`,
tempASecCfg.initPacketJunkSize,
MaxSegmentSize,
)
}
} else {
device.aSecCfg.initPacketJunkSize = tempASecCfg.initPacketJunkSize
}
if tempASecCfg.initPacketJunkSize != 0 { if tempASecCfg.initPacketJunkSize != 0 {
if MessageInitiationSize+tempASecCfg.initPacketJunkSize >= MaxSegmentSize { isASecOn = true
if err != nil {
err = ipcErrorf(
ipc.IpcErrorInvalid,
`init header size(148) + junkSize:%d;
should be smaller than maxSegmentSize: %d; %w`,
tempASecCfg.initPacketJunkSize,
MaxSegmentSize,
err,
)
} else {
err = ipcErrorf(
ipc.IpcErrorInvalid,
`init header size(148) + junkSize:%d;
should be smaller than maxSegmentSize: %d`,
tempASecCfg.initPacketJunkSize,
MaxSegmentSize,
)
}
} else {
device.log.Verbosef("UAPI: Updating init_packet_junk_size")
device.aSecCfg.initPacketJunkSize = tempASecCfg.initPacketJunkSize
isASecOn = true
}
} }
if tempASecCfg.responsePacketJunkSize != 0 {
if MessageResponseSize+tempASecCfg.responsePacketJunkSize >= MaxSegmentSize { if MessageResponseSize+tempASecCfg.responsePacketJunkSize >= MaxSegmentSize {
if err != nil { if err != nil {
err = ipcErrorf( err = ipcErrorf(
ipc.IpcErrorInvalid, ipc.IpcErrorInvalid,
`response header size(92) + junkSize:%d; `response header size(92) + junkSize:%d; should be smaller than maxSegmentSize: %d; %w`,
should be smaller than maxSegmentSize: %d; %w`, tempASecCfg.responsePacketJunkSize,
tempASecCfg.responsePacketJunkSize, MaxSegmentSize,
MaxSegmentSize, err,
err, )
) } else {
} else { err = ipcErrorf(
err = ipcErrorf( ipc.IpcErrorInvalid,
ipc.IpcErrorInvalid, `response header size(92) + junkSize:%d; should be smaller than maxSegmentSize: %d`,
`response header size(92) + junkSize:%d; tempASecCfg.responsePacketJunkSize,
should be smaller than maxSegmentSize: %d`, MaxSegmentSize,
tempASecCfg.responsePacketJunkSize, )
MaxSegmentSize,
)
}
} else {
device.log.Verbosef("UAPI: Updating response_packet_junk_size")
device.aSecCfg.responsePacketJunkSize = tempASecCfg.responsePacketJunkSize
isASecOn = true
} }
} else {
device.aSecCfg.responsePacketJunkSize = tempASecCfg.responsePacketJunkSize
}
if tempASecCfg.responsePacketJunkSize != 0 {
isASecOn = true
} }
if tempASecCfg.initPacketMagicHeader > 4 { if tempASecCfg.initPacketMagicHeader > 4 {
@ -691,6 +691,7 @@ func (device *Device) handlePostConfig(tempASecCfg *aSecCfgType) (err error) {
device.log.Verbosef("UAPI: Using default init type") device.log.Verbosef("UAPI: Using default init type")
MessageInitiationType = 1 MessageInitiationType = 1
} }
if tempASecCfg.responsePacketMagicHeader > 4 { if tempASecCfg.responsePacketMagicHeader > 4 {
isASecOn = true isASecOn = true
device.log.Verbosef("UAPI: Updating response_packet_magic_header") device.log.Verbosef("UAPI: Updating response_packet_magic_header")
@ -700,6 +701,7 @@ func (device *Device) handlePostConfig(tempASecCfg *aSecCfgType) (err error) {
device.log.Verbosef("UAPI: Using default response type") device.log.Verbosef("UAPI: Using default response type")
MessageResponseType = 2 MessageResponseType = 2
} }
if tempASecCfg.underloadPacketMagicHeader > 4 { if tempASecCfg.underloadPacketMagicHeader > 4 {
isASecOn = true isASecOn = true
device.log.Verbosef("UAPI: Updating underload_packet_magic_header") device.log.Verbosef("UAPI: Updating underload_packet_magic_header")
@ -709,6 +711,7 @@ func (device *Device) handlePostConfig(tempASecCfg *aSecCfgType) (err error) {
device.log.Verbosef("UAPI: Using default underload type") device.log.Verbosef("UAPI: Using default underload type")
MessageCookieReplyType = 3 MessageCookieReplyType = 3
} }
if tempASecCfg.transportPacketMagicHeader > 4 { if tempASecCfg.transportPacketMagicHeader > 4 {
isASecOn = true isASecOn = true
device.log.Verbosef("UAPI: Updating transport_packet_magic_header") device.log.Verbosef("UAPI: Updating transport_packet_magic_header")
@ -730,8 +733,7 @@ func (device *Device) handlePostConfig(tempASecCfg *aSecCfgType) (err error) {
if err != nil { if err != nil {
err = ipcErrorf( err = ipcErrorf(
ipc.IpcErrorInvalid, ipc.IpcErrorInvalid,
`magic headers should differ; got: init:%d; recv:%d; unde:%d; `magic headers should differ; got: init:%d; recv:%d; unde:%d; tran:%d; %w`,
tran:%d; %w`,
MessageInitiationType, MessageInitiationType,
MessageResponseType, MessageResponseType,
MessageCookieReplyType, MessageCookieReplyType,
@ -741,8 +743,7 @@ func (device *Device) handlePostConfig(tempASecCfg *aSecCfgType) (err error) {
} else { } else {
err = ipcErrorf( err = ipcErrorf(
ipc.IpcErrorInvalid, ipc.IpcErrorInvalid,
`magic headers should differ; got: init:%d; recv:%d; unde:%d; `magic headers should differ; got: init:%d; recv:%d; unde:%d; tran:%d`,
tran:%d`,
MessageInitiationType, MessageInitiationType,
MessageResponseType, MessageResponseType,
MessageCookieReplyType, MessageCookieReplyType,

View file

@ -293,6 +293,7 @@ func (device *Device) handleDeviceLine(key, value string, tempASecCfg *aSecCfgTy
if err != nil { if err != nil {
return ipcErrorf(ipc.IpcErrorInvalid, "faield to parse junk_packet_count %w", err) return ipcErrorf(ipc.IpcErrorInvalid, "faield to parse junk_packet_count %w", err)
} }
device.log.Verbosef("UAPI: Updating junk_packet_count")
tempASecCfg.junkPacketCount = junkPacketCount tempASecCfg.junkPacketCount = junkPacketCount
case "jmin": case "jmin":
@ -300,6 +301,7 @@ func (device *Device) handleDeviceLine(key, value string, tempASecCfg *aSecCfgTy
if err != nil { if err != nil {
return ipcErrorf(ipc.IpcErrorInvalid,"faield to parse junk_packet_min_size %w", err) return ipcErrorf(ipc.IpcErrorInvalid,"faield to parse junk_packet_min_size %w", err)
} }
device.log.Verbosef("UAPI: Updating junk_packet_min_size")
tempASecCfg.junkPacketMinSize = junkPacketMinSize tempASecCfg.junkPacketMinSize = junkPacketMinSize
case "jmax": case "jmax":
@ -307,6 +309,7 @@ func (device *Device) handleDeviceLine(key, value string, tempASecCfg *aSecCfgTy
if err != nil { if err != nil {
return ipcErrorf(ipc.IpcErrorInvalid,"faield to parse junk_packet_max_size %w", err) return ipcErrorf(ipc.IpcErrorInvalid,"faield to parse junk_packet_max_size %w", err)
} }
device.log.Verbosef("UAPI: Updating junk_packet_max_size")
tempASecCfg.junkPacketMaxSize = junkPacketMaxSize tempASecCfg.junkPacketMaxSize = junkPacketMaxSize
case "s1": case "s1":
@ -314,6 +317,7 @@ func (device *Device) handleDeviceLine(key, value string, tempASecCfg *aSecCfgTy
if err != nil { if err != nil {
return ipcErrorf(ipc.IpcErrorInvalid,"faield to parse init_packet_junk_size %w", err) return ipcErrorf(ipc.IpcErrorInvalid,"faield to parse init_packet_junk_size %w", err)
} }
device.log.Verbosef("UAPI: Updating init_packet_junk_size")
tempASecCfg.initPacketJunkSize = initPacketJunkSize tempASecCfg.initPacketJunkSize = initPacketJunkSize
case "s2": case "s2":
@ -321,6 +325,7 @@ func (device *Device) handleDeviceLine(key, value string, tempASecCfg *aSecCfgTy
if err != nil { if err != nil {
return ipcErrorf(ipc.IpcErrorInvalid,"faield to parse response_packet_junk_size %w", err) return ipcErrorf(ipc.IpcErrorInvalid,"faield to parse response_packet_junk_size %w", err)
} }
device.log.Verbosef("UAPI: Updating response_packet_junk_size")
tempASecCfg.responsePacketJunkSize = responsePacketJunkSize tempASecCfg.responsePacketJunkSize = responsePacketJunkSize
case "h1": case "h1":