E2AP Abstraction Changes
[ric-app/hw.git] / src / xapp-mgmt / msgs_proc.cc
index 99eb453..d4de3c7 100644 (file)
 
 #include "msgs_proc.hpp"
 
-
-bool XappMsgHandler::encode_subscription_delete_request(unsigned char* buffer, size_t *buf_len){
-
-       subscription_helper sub_helper;
-       sub_helper.set_request(0); // requirement of subscription manager ... ?
-       sub_helper.set_function_id(0);
-
-       subscription_delete e2ap_sub_req_del;
-
-         // generate the delete request pdu
-
-         bool res = e2ap_sub_req_del.encode_e2ap_subscription(&buffer[0], buf_len, sub_helper);
-         if(! res){
-           mdclog_write(MDCLOG_ERR, "%s, %d: Error encoding subscription delete request pdu. Reason = %s", __FILE__, __LINE__, e2ap_sub_req_del.get_error().c_str());
-           return false;
-         }
-
-       return true;
-
-}
-
+/*
 bool XappMsgHandler::decode_subscription_response(unsigned char* data_buf, size_t data_size){
 
        subscription_helper subhelper;
@@ -78,12 +58,12 @@ bool XappMsgHandler::decode_subscription_response(unsigned char* data_buf, size_
        ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, e2pdu);
        return res;
 
-}
+}*/
 
 bool  XappMsgHandler::a1_policy_handler(char * message, int *message_len, a1_policy_helper &helper){
 
   rapidjson::Document doc;
-  if (doc.Parse(message).HasParseError()){
+  if (doc.Parse<kParseStopWhenDoneFlag>(message).HasParseError()){
     mdclog_write(MDCLOG_ERR, "Error: %s, %d :: Could not decode A1 JSON message %s\n", __FILE__, __LINE__, message);
     return false;
   }
@@ -163,15 +143,27 @@ void XappMsgHandler::operator()(rmr_mbuf_t *message, bool *resend){
                case (RIC_SUB_RESP):
                        mdclog_write(MDCLOG_INFO, "Received subscription message of type = %d", message->mtype);
                                unsigned char *me_id;
-                               rmr_get_meid(message, me_id);
+                               if( (me_id = (unsigned char *) malloc( sizeof( unsigned char ) * RMR_MAX_MEID )) == NULL ) {
+                                       mdclog_write(MDCLOG_ERR, "Error :  %s, %d : malloc failed for me_id", __FILE__, __LINE__);
+                                       me_id = rmr_get_meid(message, NULL);
+                               } else {
+                                       rmr_get_meid(message, me_id);
+                               }
+                               if(me_id == NULL){
+                                       mdclog_write(MDCLOG_ERR, " Error :: %s, %d : rmr_get_meid failed me_id is NULL", __FILE__, __LINE__);
+                                       break;
+                               }
                                mdclog_write(MDCLOG_INFO,"RMR Received MEID: %s",me_id);
-
                                if(_ref_sub_handler !=NULL){
-                                       _ref_sub_handler->manage_subscription_response(message->mtype, me_id);
+                                       _ref_sub_handler->manage_subscription_response(message->mtype, reinterpret_cast< char const* >(me_id));
                                } else {
                                        mdclog_write(MDCLOG_ERR, " Error :: %s, %d : Subscription handler not assigned in message processor !", __FILE__, __LINE__);
                                }
                                *resend = false;
+                               if (me_id != NULL) {
+                                       mdclog_write(MDCLOG_INFO, "Free RMR Received MEID memory: %s(0x%x)", me_id, me_id);
+                                       free(me_id);
+                               }
                                break;
 
        case A1_POLICY_REQ: