J release: Release container Image
[ric-plt/e2mgr.git] / E2Manager / rmrCgo / rmrCgoUtils.go
index b0ce30c..c9d1147 100644 (file)
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-//
+
+//  This source code is part of the near-RT RIC (RAN Intelligent Controller)
+//  platform project (RICP).
+
 
 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"
@@ -31,7 +34,7 @@ import (
 
 func convertToMBuf(logger *logger.Logger, m *C.rmr_mbuf_t) *MBuf {
        payloadArr := C.GoBytes(unsafe.Pointer(m.payload),C.int(m.len))
-       xActionArr := C.GoBytes(unsafe.Pointer(m.xaction),RMR_MAX_XACTION_LEN)
+       xActionArr := C.GoBytes(unsafe.Pointer(m.xaction),C.int(RMR_MAX_XACTION_LEN))
 
        // Trim padding (space and 0)
        xActionStr :=  strings.TrimRight(string(xActionArr),"\040\000")
@@ -42,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")
@@ -57,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)
 
@@ -99,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")
        }
 }