RIC-997: ErrorIndication handling in e2mgr
[ric-plt/e2mgr.git] / E2Manager / rmrCgo / rmrCgoUtils.go
index ca29747..c9d1147 100644 (file)
@@ -20,7 +20,7 @@
 
 package rmrCgo
 
-// #cgo LDFLAGS: -L/usr/local/lib -lrmr_nng -lnng
+// #cgo LDFLAGS: -L/usr/local/lib -lrmr_si
 // #include <rmr/rmr.h>
 // #include <stdlib.h>
 import "C"
@@ -45,8 +45,11 @@ func convertToMBuf(logger *logger.Logger, m *C.rmr_mbuf_t) *MBuf {
                Len:   int(m.len),
                Payload: &payloadArr,
                XAction: &xActionArr,
+               msgSrc: C.CBytes(make([]byte, RMR_MAX_SRC_LEN)),
        }
 
+       C.rmr_get_src(m, (*C.uchar)(mbuf.msgSrc)) // Capture message source
+
        meidBuf := make([]byte, RMR_MAX_MEID_LEN)
        if meidCstr := C.rmr_get_meid(m, (*C.uchar)(unsafe.Pointer(&meidBuf[0]))); meidCstr != nil {
                mbuf.Meid =     strings.TrimRight(string(meidBuf), "\000")
@@ -60,6 +63,9 @@ func (ctx *Context) getAllocatedCRmrMBuf(logger *logger.Logger, mBuf *MBuf, maxM
        var meidBuf[RMR_MAX_MEID_LEN]byte
 
        cMBuf = C.rmr_alloc_msg(ctx.RmrCtx, C.int(maxMsgSize))
+       if cMBuf == nil {
+               return nil
+       }
        cMBuf.mtype = C.int(mBuf.MType)
        cMBuf.len = C.int(mBuf.Len)
 
@@ -102,9 +108,9 @@ func (ctx *Context) getAllocatedCRmrMBuf(logger *logger.Logger, mBuf *MBuf, maxM
 //TODO: change to assert or return error
 func (ctx *Context) checkContextInitialized() {
        if ctx.RmrCtx == nil {
-               if ctx.Logger != nil {
+               /*if ctx.Logger != nil {
                        ctx.Logger.DPanicf("#rmrCgoUtils.checkContextInitialized - The RMR router has not been initialized")
-               }
+               }*/
                panic("#rmrCgoUtils.checkContextInitialized - The RMR router has not been initialized. To initialize router please call Init() method")
        }
 }