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;
}
mdclog_write(MDCLOG_ERR, "Error : %s, %d:: Could not extract policy type id from %s\n", __FILE__, __LINE__, message);
return false;
}
- helper.policy_type_id = ref2->GetString();
+ //helper.policy_type_id = ref2->GetString();
+ helper.policy_type_id = to_string(ref2->GetInt());
- // Extract policy instance id
+ // Extract policy instance id
rapidjson::Pointer temp("/policy_instance_id");
rapidjson::Value * ref = temp.Get(doc);
if (ref == NULL){
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:
+
+ mdclog_write(MDCLOG_INFO, "In Message Handler: Received A1_POLICY_REQ.");
helper.handler_id = xapp_id;
+
res = a1_policy_handler((char*)message->payload, &message->len, helper);
if(res){
message->mtype = A1_POLICY_RESP; // if we're here we are running and all is ok