From eca3fc64f2aafc89bc8d4b12f63c19c9fd4237cc Mon Sep 17 00:00:00 2001 From: Dane Murphy Date: Mon, 14 Jul 2025 10:14:10 -0700 Subject: [PATCH 1/2] call reporter callback for server once test state is set to DISPLAY_RESULTS --- src/iperf_server_api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/iperf_server_api.c b/src/iperf_server_api.c index e9313244f..2f2a6641b 100644 --- a/src/iperf_server_api.c +++ b/src/iperf_server_api.c @@ -275,13 +275,13 @@ iperf_handle_message_server(struct iperf_test *test) FD_CLR(sp->socket, &test->write_set); close(sp->socket); } - test->reporter_callback(test); if (iperf_set_send_state(test, EXCHANGE_RESULTS) != 0) return -1; if (iperf_exchange_results(test) < 0) return -1; if (iperf_set_send_state(test, DISPLAY_RESULTS) != 0) return -1; + test->reporter_callback(test); if (test->on_test_finish) test->on_test_finish(test); break; From 6c8c6fdec4dffd41dee66100a6c7ed2067bc0873 Mon Sep 17 00:00:00 2001 From: Dane Murphy Date: Mon, 14 Jul 2025 13:33:17 -0700 Subject: [PATCH 2/2] change order of call to reporter callback --- src/iperf_api.c | 5 +++++ src/iperf_server_api.c | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/iperf_api.c b/src/iperf_api.c index b41368709..947b01dc1 100644 --- a/src/iperf_api.c +++ b/src/iperf_api.c @@ -2392,6 +2392,10 @@ iperf_exchange_results(struct iperf_test *test) /* Get client results. */ if (get_results(test) < 0) return -1; + + /* Report results once client's results are received */ + test->reporter_callback(test); + /* Send results to client. */ if (send_results(test) < 0) return -1; @@ -4553,6 +4557,7 @@ iperf_reporter_callback(struct iperf_test *test) iperf_print_intermediate(test); break; case TEST_END: + case EXCHANGE_RESULTS: case DISPLAY_RESULTS: iperf_print_intermediate(test); iperf_print_results(test); diff --git a/src/iperf_server_api.c b/src/iperf_server_api.c index 2f2a6641b..a7204b4d0 100644 --- a/src/iperf_server_api.c +++ b/src/iperf_server_api.c @@ -281,7 +281,6 @@ iperf_handle_message_server(struct iperf_test *test) return -1; if (iperf_set_send_state(test, DISPLAY_RESULTS) != 0) return -1; - test->reporter_callback(test); if (test->on_test_finish) test->on_test_finish(test); break;