From c5478ea6d07c4f082981eebe1518eaed6f60aa59 Mon Sep 17 00:00:00 2001 From: Romein van Buren Date: Wed, 11 Jun 2025 22:32:46 +0200 Subject: [PATCH] Add debug print --- fmp/fmp_chunk.go | 10 +++++----- fmp/fmp_file.go | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/fmp/fmp_chunk.go b/fmp/fmp_chunk.go index c10ba87..7103bad 100644 --- a/fmp/fmp_chunk.go +++ b/fmp/fmp_chunk.go @@ -128,16 +128,16 @@ func (ctx *FmpFile) readChunk(payload []byte) (*FmpChunk, error) { length := payload[4] return &FmpChunk{ Type: FMP_CHUNK_LONG_KEY_VALUE, - Key: parseVarUint32(payload[1 : 1+3]), // todo, won't work? + Key: parseVarUint32(payload[1 : 1+3]), Value: payload[5 : 5+length], Length: 5 + uint32(length), }, nil } if payload[0] == 0x17 { - length := parseVarUint32(payload[1 : 1+3]) // todo, won't work? + length := uint32(binary.BigEndian.Uint16(payload[4 : 4+2])) return &FmpChunk{ Type: FMP_CHUNK_LONG_KEY_VALUE, - Key: uint32(binary.BigEndian.Uint16(payload[4 : 4+2])), + Key: uint32(binary.BigEndian.Uint16(payload[1 : 1+2])), Value: payload[6 : 6+length], Length: 6 + uint32(length), }, nil @@ -175,12 +175,12 @@ func (ctx *FmpFile) readChunk(payload []byte) (*FmpChunk, error) { }, nil } if payload[0] == 0x0F { - length := binary.BigEndian.Uint16(payload[3 : 3+2]) + length := uint32(binary.BigEndian.Uint16(payload[3 : 3+2])) return &FmpChunk{ Type: FMP_CHUNK_SEGMENTED_DATA, Index: uint32(binary.BigEndian.Uint16(payload[1 : 1+2])), Value: payload[5 : 5+length], - Length: 5 + uint32(length), + Length: 5 + length, }, nil } diff --git a/fmp/fmp_file.go b/fmp/fmp_file.go index 5c0e23c..5554553 100644 --- a/fmp/fmp_file.go +++ b/fmp/fmp_file.go @@ -3,6 +3,7 @@ package fmp import ( "bytes" "encoding/binary" + "encoding/hex" "io" "os" "time" @@ -57,6 +58,7 @@ func OpenFile(path string) (*FmpFile, error) { ctx.Sectors = make([]*FmpSector, ctx.NumSectors) for i := uint(0); i < ctx.NumSectors; i++ { + println("reading sector ", i) sector, err := ctx.readSector() if err != nil { return nil, err @@ -120,6 +122,7 @@ func (ctx *FmpFile) readSector() (*FmpSector, error) { sector.Chunks = make([]*FmpChunk, 0) for { + println(hex.EncodeToString(payload[0:2])) chunk, err := ctx.readChunk(payload) if err == io.EOF { break @@ -134,7 +137,6 @@ func (ctx *FmpFile) readSector() (*FmpSector, error) { if chunk.Length == 0 { panic("chunk length not set") } - print(chunk.String() + "\n") payload = payload[chunk.Length:] }