@@ -121,7 +121,7 @@ void usage(int argc, const char* argv[]) {
121
121
lf_print (" -n, --number_of_federates <n>" );
122
122
lf_print (" The number of federates in the federation that this RTI will control.\n" );
123
123
lf_print (" -nt, --number_of_transient_federates <n>" );
124
- lf_print (" The number of transient federates in the federation that this RTI will control .\n" );
124
+ lf_print (" The number of federates that are transient; this must be strictly less than the number of federates .\n" );
125
125
lf_print (" -p, --port <n>" );
126
126
lf_print (" The port number to use for the RTI. Must be larger than 0 and smaller than %d. Default is %d.\n" , UINT16_MAX , DEFAULT_PORT );
127
127
lf_print (" -c, --clock_sync [off|init|on] [period <n>] [exchanges-per-interval <n>]" );
@@ -240,12 +240,12 @@ int process_args(int argc, const char* argv[]) {
240
240
}
241
241
i ++ ;
242
242
long num_transient_federates = strtol (argv [i ], NULL , 10 );
243
- if (num_transient_federates == LONG_MAX || num_transient_federates == LONG_MIN ) {
244
- lf_print_error ("--number_of_transient_federates needs a valid positive or null integer argument ." );
243
+ if (num_transient_federates < 0 || num_transient_federates > INT32_MAX ) {
244
+ lf_print_error ("--number_of_transient_federates must be between 0 and INT32_MAX ." );
245
245
usage (argc , argv );
246
246
return 0 ;
247
247
}
248
- rti .number_of_transient_federates = (int32_t )num_transient_federates ; // FIXME: Loses numbers on 64-bit machines
248
+ rti .number_of_transient_federates = (int32_t )num_transient_federates ;
249
249
lf_print ("RTI: Number of transient federates: %d" , rti .number_of_transient_federates );
250
250
} else if (strcmp (argv [i ], "-p" ) == 0 || strcmp (argv [i ], "--port" ) == 0 ) {
251
251
if (argc < i + 2 ) {
0 commit comments