@@ -121,7 +121,7 @@ void usage(int argc, const char* argv[]) {
121121 lf_print (" -n, --number_of_federates <n>" );
122122 lf_print (" The number of federates in the federation that this RTI will control.\n" );
123123 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" );
125125 lf_print (" -p, --port <n>" );
126126 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 );
127127 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[]) {
240240 }
241241 i ++ ;
242242 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 ." );
245245 usage (argc , argv );
246246 return 0 ;
247247 }
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 ;
249249 lf_print ("RTI: Number of transient federates: %d" , rti .number_of_transient_federates );
250250 } else if (strcmp (argv [i ], "-p" ) == 0 || strcmp (argv [i ], "--port" ) == 0 ) {
251251 if (argc < i + 2 ) {
0 commit comments