diff --git a/core/federated/RTI/main.c b/core/federated/RTI/main.c index f8d043225..317daf319 100644 --- a/core/federated/RTI/main.c +++ b/core/federated/RTI/main.c @@ -333,16 +333,18 @@ int main(int argc, const char* argv[]) { rti.base.scheduling_nodes[i] = (scheduling_node_t *) fed_info; } // TODO: Need to add user_specified_port - start_net_rti_server(); - net_wait_for_federates(rti.rti_netdrv); - normal_termination = true; - if (rti.base.tracing_enabled) { - // No need for a mutex lock because all threads have exited. - stop_trace_locked(rti.base.trace); - lf_print("RTI trace file saved."); + if (start_net_rti_server()){ + net_wait_for_federates(rti.rti_netdrv); + normal_termination = true; + if (rti.base.tracing_enabled) { + // No need for a mutex lock because all threads have exited. + stop_trace_locked(rti.base.trace); + lf_print("RTI trace file saved."); + } } + // int socket_descriptor = start_rti_server(rti.user_specified_port); // if (socket_descriptor >= 0) { // wait_for_federates(socket_descriptor); diff --git a/core/federated/RTI/rti_remote.c b/core/federated/RTI/rti_remote.c index 9fa284b54..a83f28e86 100644 --- a/core/federated/RTI/rti_remote.c +++ b/core/federated/RTI/rti_remote.c @@ -2100,15 +2100,16 @@ void initialize_federate(federate_info_t *fed, uint16_t id) { fed->clock_netdrv = netdrv_init(); } -void start_net_rti_server() { +int32_t start_net_rti_server() { _lf_initialize_clock(); // Create the RTI's netdriver. - create_net_server(rti_remote->rti_netdrv, RTI); + int success = create_net_server(rti_remote->rti_netdrv, RTI); lf_print("RTI: Listening for federates."); // Create the clocksync's netdriver. if (rti_remote->clock_sync_global_status >= clock_sync_on) { create_net_server(rti_remote->clock_netdrv, CLOCKSYNC); } + return success; } int32_t start_rti_server(uint16_t port) { diff --git a/core/federated/RTI/rti_remote.h b/core/federated/RTI/rti_remote.h index e58056ca5..da05015d4 100644 --- a/core/federated/RTI/rti_remote.h +++ b/core/federated/RTI/rti_remote.h @@ -392,7 +392,7 @@ void* respond_to_erroneous_connections(void* nothing); void initialize_federate(federate_info_t* fed, uint16_t id); //TODO: Need to add descriptions. -void start_net_rti_server(); +int32_t start_net_rti_server(); /** * Start the socket server for the runtime infrastructure (RTI) and