mirror of
https://github.com/garraflavatra/go-fmp.git
synced 2025-07-04 14:35:11 +00:00
Add debug print
This commit is contained in:
@ -128,16 +128,16 @@ func (ctx *FmpFile) readChunk(payload []byte) (*FmpChunk, error) {
|
|||||||
length := payload[4]
|
length := payload[4]
|
||||||
return &FmpChunk{
|
return &FmpChunk{
|
||||||
Type: FMP_CHUNK_LONG_KEY_VALUE,
|
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],
|
Value: payload[5 : 5+length],
|
||||||
Length: 5 + uint32(length),
|
Length: 5 + uint32(length),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
if payload[0] == 0x17 {
|
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{
|
return &FmpChunk{
|
||||||
Type: FMP_CHUNK_LONG_KEY_VALUE,
|
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],
|
Value: payload[6 : 6+length],
|
||||||
Length: 6 + uint32(length),
|
Length: 6 + uint32(length),
|
||||||
}, nil
|
}, nil
|
||||||
@ -175,12 +175,12 @@ func (ctx *FmpFile) readChunk(payload []byte) (*FmpChunk, error) {
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
if payload[0] == 0x0F {
|
if payload[0] == 0x0F {
|
||||||
length := binary.BigEndian.Uint16(payload[3 : 3+2])
|
length := uint32(binary.BigEndian.Uint16(payload[3 : 3+2]))
|
||||||
return &FmpChunk{
|
return &FmpChunk{
|
||||||
Type: FMP_CHUNK_SEGMENTED_DATA,
|
Type: FMP_CHUNK_SEGMENTED_DATA,
|
||||||
Index: uint32(binary.BigEndian.Uint16(payload[1 : 1+2])),
|
Index: uint32(binary.BigEndian.Uint16(payload[1 : 1+2])),
|
||||||
Value: payload[5 : 5+length],
|
Value: payload[5 : 5+length],
|
||||||
Length: 5 + uint32(length),
|
Length: 5 + length,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package fmp
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
|
"encoding/hex"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
@ -57,6 +58,7 @@ func OpenFile(path string) (*FmpFile, error) {
|
|||||||
ctx.Sectors = make([]*FmpSector, ctx.NumSectors)
|
ctx.Sectors = make([]*FmpSector, ctx.NumSectors)
|
||||||
|
|
||||||
for i := uint(0); i < ctx.NumSectors; i++ {
|
for i := uint(0); i < ctx.NumSectors; i++ {
|
||||||
|
println("reading sector ", i)
|
||||||
sector, err := ctx.readSector()
|
sector, err := ctx.readSector()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -120,6 +122,7 @@ func (ctx *FmpFile) readSector() (*FmpSector, error) {
|
|||||||
sector.Chunks = make([]*FmpChunk, 0)
|
sector.Chunks = make([]*FmpChunk, 0)
|
||||||
|
|
||||||
for {
|
for {
|
||||||
|
println(hex.EncodeToString(payload[0:2]))
|
||||||
chunk, err := ctx.readChunk(payload)
|
chunk, err := ctx.readChunk(payload)
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
break
|
break
|
||||||
@ -134,7 +137,6 @@ func (ctx *FmpFile) readSector() (*FmpSector, error) {
|
|||||||
if chunk.Length == 0 {
|
if chunk.Length == 0 {
|
||||||
panic("chunk length not set")
|
panic("chunk length not set")
|
||||||
}
|
}
|
||||||
print(chunk.String() + "\n")
|
|
||||||
payload = payload[chunk.Length:]
|
payload = payload[chunk.Length:]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user