When the '-r' option was given on the rmr_probe command line the
process would core dump. This change corrects the argument parsing
code that was the source of the problem.
Issue-ID: RIC-644
Signed-off-by: E. Scott Daniels <daniels@research.att.com>
Change-Id: I02b5b0ba211de1ec0458e8c83d2f2ccf97523825
# API and build change and fix summaries. Doc correctsions
# and/or changes are not mentioned here; see the commit messages.
# API and build change and fix summaries. Doc correctsions
# and/or changes are not mentioned here; see the commit messages.
+2020 August 4; Version 4.2.2
+ Correct bug in the rmr_probe support utility when -r option is used
+ on the command line (RIC-644)
+
2020 August 4; Version 4.2.1
Add additional environment variable dump if RMR_LOG_VLEVEL set to
4 at start.
2020 August 4; Version 4.2.1
Add additional environment variable dump if RMR_LOG_VLEVEL set to
4 at start.
set( major_version "4" ) # should be automatically populated from git tag later, but until CI process sets a tag we use this
set( minor_version "2" )
set( major_version "4" ) # should be automatically populated from git tag later, but until CI process sets a tag we use this
set( minor_version "2" )
set( install_root "${CMAKE_INSTALL_PREFIX}" )
set( install_inc "include/rmr" )
set( install_root "${CMAKE_INSTALL_PREFIX}" )
set( install_inc "include/rmr" )
version 4.0.0, the RMR versions should no longer skip.
version 4.0.0, the RMR versions should no longer skip.
+2020 August 4; Version 4.2.2
+----------------------------
+
+Correct bug in the rmr_probe support utility when -r option
+is used on the command line (RIC-644)
+
+
+
2020 August 4; Version 4.2.1
----------------------------
2020 August 4; Version 4.2.1
----------------------------
/*
Mnemonic: rmr_probe.c
Abstract: This sends probe messages to the indicated applications. The only
/*
Mnemonic: rmr_probe.c
Abstract: This sends probe messages to the indicated applications. The only
- use currently is to send health check messages and wait for a
+ use currently is to send health check messages and wait for a
response. It might be extended later and would cause a bit of
a redesign, but from the outside the switch to the name rmr_probe
response. It might be extended later and would cause a bit of
a redesign, but from the outside the switch to the name rmr_probe
Original abstract which stands until the probe does more:
This is a generic, and very simplistic, health check application
which will send n RMR messages to an application (localhost:4560
by default) and expect to receive n responses. Messages are sent
Original abstract which stands until the probe does more:
This is a generic, and very simplistic, health check application
which will send n RMR messages to an application (localhost:4560
by default) and expect to receive n responses. Messages are sent
- with the message type RIC_HEALTH_CHECK_REQ and responses are
+ with the message type RIC_HEALTH_CHECK_REQ and responses are
expected to have a message type RIC_HEALTH_CHECK_RESP (defined in
the RIC message type header file).
expected to have a message type RIC_HEALTH_CHECK_RESP (defined in
the RIC message type header file).
to indicate the state of the response. The ERR token may optionally
be followed with a text string; when present it will be written on
to indicate the state of the response. The ERR token may optionally
be followed with a text string; when present it will be written on
- standard error as an aide to problem determination if needed.
+ standard error as an aide to problem determination if needed.
The programme exit code will be 0 on success (all received messages
had the OK token), or 1 to indicate failure. A failure reason will
The programme exit code will be 0 on success (all received messages
had the OK token), or 1 to indicate failure. A failure reason will
}
static void usage( char* arg0 ) {
}
static void usage( char* arg0 ) {
fprintf( stderr, "version 1.0.0\n"
fprintf( stderr, "version 1.0.0\n"
- "usage: %s [-h host:port] [-n msg-count] [-r] [-t seconds] [-v]\n"
+ "usage: %s [-h host:port] [-n msg-count] [-p port | -r] [-t seconds] [-v]\n"
"\thost:port may be ip-address:port or name:port of the application\n"
"\tmsg-count is the number of health check requests sent; default is 1\n"
"\thost:port may be ip-address:port or name:port of the application\n"
"\tmsg-count is the number of health check requests sent; default is 1\n"
+ "\t-p uses the given port instead of assigning a random port (-r ignored if given)\n"
"\t-r causes a random listen port NOT to be used; 43086 is used instead\n"
"\t-v enables some amount of extra verbose output to stderr\n", arg0 );
}
"\t-r causes a random listen port NOT to be used; 43086 is used instead\n"
"\t-v enables some amount of extra verbose output to stderr\n", arg0 );
}
int ai = 1; // arg index
int i;
int ai = 1; // arg index
int i;
- void* mrc; // msg router context
+ void* mrc; // msg router context
rmr_mbuf_t* mbuf; // message buffer
char* payload; // direct reference to msg payload
long expiry; // point at which we give up (expire)
rmr_mbuf_t* mbuf; // message buffer
char* payload; // direct reference to msg payload
long expiry; // point at which we give up (expire)
case 'r': // generate random listen port
rand_port = 0;
case 'r': // generate random listen port
rand_port = 0;
case 't': // timeout
ai++;
case 't': // timeout
ai++;
if( listen_port == NULL ) {
if( rand_port ) { // generate a somewhat random listen port (RMR needs)
srand( time( NULL ) );
if( listen_port == NULL ) {
if( rand_port ) { // generate a somewhat random listen port (RMR needs)
srand( time( NULL ) );