mirror of
https://github.com/amnezia-vpn/amneziawg-go.git
synced 2025-06-07 05:43:44 +02:00
prepare new fields for zero value
This commit is contained in:
parent
5fbb7fdb08
commit
423aa96f94
2 changed files with 106 additions and 100 deletions
201
device/device.go
201
device/device.go
|
@ -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,
|
||||||
|
|
|
@ -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":
|
||||||
|
|
Loading…
Add table
Reference in a new issue