X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=e2ap%2Fpkg%2Fpacker%2Fpacker.go;h=9eeefafb6807d9721f7f4408534e638e1623ab94;hb=01a4c49324392003717106267c56126275b9058b;hp=63c0c2f71609470a9e15a9dd67d3d730fae7df0f;hpb=662f68d35c10fa67382235a20e1e08c50359989a;p=ric-plt%2Fsubmgr.git diff --git a/e2ap/pkg/packer/packer.go b/e2ap/pkg/packer/packer.go index 63c0c2f..9eeefaf 100644 --- a/e2ap/pkg/packer/packer.go +++ b/e2ap/pkg/packer/packer.go @@ -21,46 +21,44 @@ package packer import ( "fmt" + "strings" ) -const cLogBufferMaxSize = 1024 -const cMsgBufferMaxSize = 2048 +const cLogBufferMaxSize = 40960 //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type PduPackerIf interface { - PduPack(logBuf []byte, data *PackedData) error +type PduLoggerBuf struct { + logBuffer []byte } -func PduPackerPack(entry PduPackerIf, trgBuf *PackedData) error { +func (lb *PduLoggerBuf) String() string { + return "logbuffer(" + string(lb.logBuffer[:strings.Index(string(lb.logBuffer[:]), "\000")]) + ")" +} - var logBuffer []byte = make([]byte, cLogBufferMaxSize) - logBuffer[0] = 0 +func NewPduLoggerBuf() *PduLoggerBuf { + lb := &PduLoggerBuf{} + lb.logBuffer = make([]byte, cLogBufferMaxSize) + lb.logBuffer[0] = 0 + return lb +} - if trgBuf != nil { - trgBuf.Buf = make([]byte, cMsgBufferMaxSize) - } - err := entry.PduPack(logBuffer, trgBuf) - if err == nil { - return nil - } - reterr := fmt.Errorf("Pack failed: err: %s, logbuffer: %s", err.Error(), string(logBuffer[:])) - //reterr = fmt.Errorf("%s: PDU:%s", reterr.Error(), string(logBuffer)) - return reterr +//----------------------------------------------------------------------------- +// +//----------------------------------------------------------------------------- +type PduPackerIf interface { + PduPack(logBuf []byte) (error, *PackedData) } -func PduPackerPackAllocTrg(entry PduPackerIf, trgBuf *PackedData) (error, *PackedData) { - dataPacked := trgBuf - if dataPacked == nil { - dataPacked = &PackedData{} - } - err := PduPackerPack(entry, dataPacked) - if err != nil { - return err, nil +func PduPackerPack(entry PduPackerIf) (error, *PackedData) { + lb := NewPduLoggerBuf() + err, buf := entry.PduPack(lb.logBuffer) + if err == nil { + return nil, buf } - return nil, dataPacked + return fmt.Errorf("Pack failed: err(%s), %s", err.Error(), lb.String()), nil } //----------------------------------------------------------------------------- @@ -72,14 +70,13 @@ type PduUnPackerIf interface { } func PduPackerUnPack(entry PduUnPackerIf, data *PackedData) error { - var logBuffer []byte = make([]byte, cLogBufferMaxSize) - - logBuffer[0] = 0 - err := entry.PduUnPack(logBuffer, data) + if data == nil { + return fmt.Errorf("Unpack failed: data is nil") + } + lb := NewPduLoggerBuf() + err := entry.PduUnPack(lb.logBuffer, data) if err == nil { return nil } - reterr := fmt.Errorf("Unpack failed: err: %s, logbuffer: %s", err.Error(), string(logBuffer[:])) - //reterr = fmt.Errorf("%s: PDU:%s", reterr.Error(), string(logBuffer)) - return reterr + return fmt.Errorf("Unpack failed: err(%s), %s", err.Error(), lb.String()) }