fixing RMR messages with negative size
[ric-plt/lib/rmr.git] / test / app_test / sender.c
index 51429b5..74149bc 100644 (file)
@@ -68,6 +68,9 @@
 
 #include <rmr/rmr.h>
 
+#define WBUF_SIZE      1024
+#define TRACE_SIZE     1024
+
 static int sum( char* str ) {
        int sum = 0;
        int     i = 0;
@@ -112,9 +115,9 @@ int main( int argc, char** argv ) {
        int             mtype = 0;
        int             stats_freq = 100;
        int             successful = 0;                                 // set to true after we have a successful send
-       char    wbuf[1024];
+       char*   wbuf = NULL;                                    // working buffer
        char    me[128];                                                // who I am to vet rts was actually from me
-       char    trace[1024];
+       char*   trace = NULL;                                   // area to build trace data in
        long    timeout = 0;
        int             delay = 100000;                                 // usec between send attempts
        int             nmsgs = 10;                                             // number of messages to send
@@ -122,6 +125,9 @@ int main( int argc, char** argv ) {
        int             start_mt = 0;
        int             pass = 1;
 
+       wbuf = (char *) malloc( sizeof( char ) * WBUF_SIZE );
+       trace = (char *) malloc( sizeof( char ) * TRACE_SIZE );
+
        if( argc > 1 ) {
                nmsgs = atoi( argv[1] );
        }
@@ -187,7 +193,7 @@ int main( int argc, char** argv ) {
 
        timeout = time( NULL ) + 20;
 
-       gethostname( wbuf, sizeof( wbuf ) );
+       gethostname( wbuf, WBUF_SIZE );
        snprintf( me, sizeof( me ), "%s-%d", wbuf, getpid( ) );
 
        while( count < nmsgs ) {                                                                // we send n messages after the first message is successful
@@ -205,6 +211,9 @@ int main( int argc, char** argv ) {
 
                sbuf->len =  strlen( sbuf->payload ) + 1;               // our receiver likely wants a nice acsii-z string
                sbuf->state = 0;
+
+               fprintf( stderr, "<SNDR> sending msg type %d\n", sbuf->mtype );
+
                sbuf = rmr_send_msg( mrc, sbuf );                               // send it (send returns an empty payload on success, or the original payload on fail/retry)
 
                switch( sbuf->state ) {
@@ -279,7 +288,7 @@ int main( int argc, char** argv ) {
        }
 
        fprintf( stderr, "<SNDR> draining begins\n" );
-       timeout = time( NULL ) + 20;                            // allow 20 seconds for the pipe to drain from the receiver
+       timeout = time( NULL ) + 10;                            // allow 10 seconds for the pipe to drain from the receiver
        while( time( NULL ) < timeout ) {
                if( rcv_fd >= 0 ) {
                        while( (nready = epoll_wait( ep_fd, events, 1, 100 )) > 0 ) {                   // if something ready to receive (non-blocking check)
@@ -308,7 +317,7 @@ int main( int argc, char** argv ) {
                pass = 0;
        }
 
-       fprintf( stderr, "<SNDR> [%s] sent=%d  rcvd=%d  rts-ok=%d failures=%d retries=%d\n", 
+       fprintf( stderr, "<SNDR> [%s] sent=%d  rcvd=%d  rts-ok=%d failures=%d retries=%d\n",
                pass ? "PASS" : "FAIL",  count, rcvd_count, rts_ok, fail_count, rt_count );
        rmr_close( mrc );