X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Frmr_em.c;h=9d5c62129d363767181d4288ef46ef6df5cdf330;hb=refs%2Fheads%2Fi-release;hp=581248ec5f33b2a3c761e8b9211aa16a002c7460;hpb=4e4fb5021cc9aa67390f6641a060b85c077a1880;p=ric-plt%2Fxapp-frame-cpp.git diff --git a/test/rmr_em.c b/test/rmr_em.c index 581248e..9d5c621 100644 --- a/test/rmr_em.c +++ b/test/rmr_em.c @@ -22,7 +22,7 @@ Mnemonic: rmr_em.c Abstract: RMR emulation for testing - Date: 20 March + Date: 20 March Author: E. Scott Daniels */ @@ -115,7 +115,7 @@ char* rmr_get_meid( rmr_mbuf_t* mbuf, char* m ) { if( mbuf != NULL ) { if( m == NULL ) { - m = (char *) malloc( sizeof( char ) * 32 ); + m = (char *) malloc( sizeof( char ) * 32 ); } h = (header_t *) mbuf->tp_buf; memcpy( m, h->meid, 32 ); @@ -138,7 +138,7 @@ char *rmr_get_src( rmr_mbuf_t* mbuf, char *m ) { if( mbuf != NULL ) { if( m == NULL ) { - m = (char *) malloc( sizeof( char ) * 32 ); + m = (char *) malloc( sizeof( char ) * 32 ); } h = (header_t *) mbuf->tp_buf; memcpy( m, h->src, 32 ); @@ -170,23 +170,42 @@ int rmr_str2meid( rmr_mbuf_t* mbuf, unsigned char* s ) { rmr_mbuf_t* rmr_send_msg( void* mrc, rmr_mbuf_t* mbuf ) { if( mbuf != NULL ) { - mbuf->state = 0; + mbuf->state = 0; } - + return mbuf; } rmr_mbuf_t* rmr_rts_msg( void* mrc, rmr_mbuf_t* mbuf ) { if( mbuf != NULL ) { - mbuf->state = 0; + mbuf->state = 0; } - + return mbuf; } rmr_mbuf_t* rmr_realloc_payload( rmr_mbuf_t* mbuf, int payload_len, int copy, int clone ) { // ensure message is large enough - return rmr_alloc_msg( NULL, payload_len ); + rmr_mbuf_t* nmb; + unsigned char* payload; + + if( mbuf == NULL ) { + return NULL; + } + + nmb = rmr_alloc_msg( NULL, payload_len ); + if( copy ) { + memcpy( nmb->payload, mbuf->payload, mbuf->len ); + nmb->len = mbuf->len; + } else { + nmb->len = 0; + } + nmb->state = mbuf->state; + + if( ! clone ) { + free( mbuf ); + } + return nmb; } void rmr_close( void* mrc ) { @@ -229,8 +248,43 @@ int rmr_ready( void* mrc ) { if( ! state ) { state = 1; return 0; - } + } return 1; } +// ----------------------- wormhole dummies --------------------------------------------- + +typedef int rmr_whid_t; + +extern rmr_whid_t rmr_wh_open( void* vctx, char const* target ) { + static int whid = 0; + + if( vctx == NULL ) { + return -1; + } + return whid++; +} + +//extern rmr_mbuf_t* rmr_wh_call( void* vctx, rmr_whid_t whid, rmr_mbuf_t* msg, int call_id, int max_wait ); + +extern rmr_mbuf_t* rmr_wh_send_msg( void* vctx, rmr_whid_t whid, rmr_mbuf_t* mbuf ) { + if( mbuf != NULL ) { + if( whid >= 0 ) { + mbuf->state = 0; + } + + mbuf->state = 7; + } + + return mbuf; +} + +extern int rmr_wh_state( void* vctx, rmr_whid_t whid ) { + return whid >= 0; +} + +extern void rmr_wh_close( void* vctx, int whid ){ + return; +} +