Update unCodable packet hunter to new scheme

This commit is contained in:
adman
2026-03-02 11:08:22 +01:00
parent d8cc9cab48
commit 65bf63d67e
5 changed files with 55 additions and 5 deletions
+1 -1
View File
@@ -386,7 +386,7 @@ func BitFieldDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string)
for _, field := range data {
totalSize += field.Size
}
p, err := TotalBitfieldSizeToProtodefName(totalSize)
p, err := BitSizeToUnsignedProtodefName(totalSize)
if err != nil {
return
}
+1 -1
View File
@@ -159,7 +159,7 @@ func BitFieldEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string)
for _, field := range data {
totalSize += field.Size
}
p, err := TotalBitfieldSizeToProtodefName(totalSize)
p, err := BitSizeToUnsignedProtodefName(totalSize)
if err != nil {
return
}
+17 -2
View File
@@ -90,7 +90,22 @@ func VisitOptionType(g *Generator, dataRaw any) (e ast.Expr, err error) {
return
}
func TotalBitfieldSizeToProtodefName(totalSize int) (e string, err error) {
func BitSizeToSignedProtodefName(totalSize int) (e string, err error) {
if totalSize <= 8 {
e = "i8"
} else if totalSize <= 16 {
e = "i16"
} else if totalSize <= 32 {
e = "i32"
} else if totalSize <= 64 {
e = "i64"
} else {
err = errors.New("bitfield size too large")
}
return
}
func BitSizeToUnsignedProtodefName(totalSize int) (e string, err error) {
if totalSize <= 8 {
e = "u8"
} else if totalSize <= 16 {
@@ -120,7 +135,7 @@ func VisitBitFieldType(g *Generator, dataRaw any) (e ast.Expr, err error) {
totalSize += field.Size
}
// TODO: we will want to generate Methods and other stuff
p, err := TotalBitfieldSizeToProtodefName(totalSize)
p, err := BitSizeToUnsignedProtodefName(totalSize)
if err != nil {
return
}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -101,7 +101,7 @@ import (
func TestFailedPacket%10X(t *testing.T) {
p := v1_21_8.Play%vPacket{}
b := bytes.NewBuffer(%#v)
p, err := p.Decode(b)
err := p.Decode(b)
if err != nil {
t.Fatal(err)
}