fixed rmr msg allocation in case payload len in bigger than 1024
[ric-plt/alarm-go.git] / alarm / utils.c
old mode 100755 (executable)
new mode 100644 (file)
index 0827069..dbb9343
@@ -30,8 +30,8 @@ void * rmrInit(void) {
 
     // Must have a route table before we can send, so wait til RMR is ready
     while(!rmr_ready(mrc)) {
-        fprintf(stderr, "Waiting for RMR to be ready ...\n");
-        sleep(1);
+        //fprintf(stderr, "Waiting for RMR to be ready ...\n");
+        sleep(2);
     }
     fprintf(stderr, "RMR is ready now ...\n");
 
@@ -40,7 +40,13 @@ void * rmrInit(void) {
 
 int rmrSend(void *mrc, int mtype, void *payload, int payload_len, char *meid) {
     int retry_count = 0;
-    rmr_mbuf_t *sbuf = rmr_alloc_msg(mrc, 1024);
+    rmr_mbuf_t *sbuf = 0;
+
+    if (payload_len > 1024) {
+        sbuf = rmr_alloc_msg(mrc, payload_len);
+    } else {
+        sbuf = rmr_alloc_msg(mrc, 1024);
+    }
 
     sbuf->mtype = mtype;
     sbuf->sub_id = RMR_VOID_SUBID;
@@ -56,6 +62,7 @@ int rmrSend(void *mrc, int mtype, void *payload, int payload_len, char *meid) {
         }
 
         if (sbuf->state == RMR_OK) {
+            fprintf(stderr, "RMR message sent successfully!\n");
             break;
         }
     } while(sbuf->state == RMR_ERR_RETRY && ++retry_count < 10);