- snprintf( msg->xid, 32, "%015d", count++ ); // simple transaction id so we can test receive specific and ring stuff
- snprintf( msg->src, 16, "localhost:4562" ); // set src id (unrealistic) so that rts() can be tested
+ msg->len2 = htonl( d1_size );
+ msg->len3 = htonl( 0 );
+
+ pthread_mutex_lock( &rcv_gate ); // hold lock to update counter/flag
+ if( em_mtc_msgs ) {
+ d1 = DATA1_ADDR( msg );
+ d1[0] = 2; // simulated msgs always on chute 2
+ if( call_flag ) {
+ rcv_count++;
+ msg->flags |= HFL_CALL_MSG;
+ }
+ if( rcv_delay > 0 ) {
+ fprintf( stderr, "<EM> count=%d flag=%d %02x \n", rcv_count, call_flag, msg->flags );
+ }
+ call_flag = !call_flag;
+ } else {
+ rcv_count++;
+ }
+ pthread_mutex_unlock( &rcv_gate );
+ snprintf( msg->xid, 32, "%015d", rcv_count ); // simple transaction id so we can test receive specific and ring stuff
+ snprintf( msg->src, 64, "localhost:4562" ); // set src id (unrealistic) so that rts() can be tested
+ snprintf( msg->srcip, 64, "89.2.19.19:4562" ); // set src ip for rts testing
+
+ //fprintf( stderr, ">>> simulated received message: %s %s p=%p len0=%d\n", msg->src, msg->srcip, msg, (int) ntohl( msg->len0 ) );
+ } else {
+ fprintf( stderr, "<WARN> em: simulated receive no msg pointer provided\n" );