// 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");
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;
}
if (sbuf->state == RMR_OK) {
+ fprintf(stderr, "RMR message sent successfully!\n");
break;
}
} while(sbuf->state == RMR_ERR_RETRY && ++retry_count < 10);