aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorJef Poskanzer <jef@mail.acme.com>2013-10-29 15:03:17 -0700
committerJef Poskanzer <jef@mail.acme.com>2013-10-29 15:03:17 -0700
commitafe6222a896e113d64f40f357a64d8a830c99ddc (patch)
tree2606021d51fd89dec3848d9b3c5fc88d940e2374 /src/main.c
parent7639c1a631089bd7a1e5e0aabfdf7dde3809fb02 (diff)
downloadiperf3-afe6222a896e113d64f40f357a64d8a830c99ddc.tar.gz
Move termination signal handing from main into iperf_run_client
and iperf_run_server, so that API users get it too. Also, call iperf_errexit with an appropriate message, which in -J mode dumps out any accumulated JSON data.
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c23
1 files changed, 5 insertions, 18 deletions
diff --git a/src/main.c b/src/main.c
index 09d0904..b5b14e4 100644
--- a/src/main.c
+++ b/src/main.c
@@ -30,10 +30,10 @@
#include "net.h"
-int iperf_run(struct iperf_test *);
+static int run(struct iperf_test *test);
-/**************************************************************************/
+/**************************************************************************/
int
main(int argc, char **argv)
{
@@ -81,19 +81,6 @@ main(int argc, char **argv)
/* This main program doesn't use SIGALRM, so the iperf API may use it. */
iperf_set_test_may_use_sigalrm(test, 1);
- // XXX: Check signal for errors?
- signal(SIGINT, sig_handler);
- if (setjmp(env)) {
- if (test->ctrl_sck >= 0) {
- test->state = (test->role == 'c') ? CLIENT_TERMINATE : SERVER_TERMINATE;
- if (Nwrite(test->ctrl_sck, (char*) &test->state, sizeof(signed char), Ptcp) < 0) {
- i_errno = IESENDMESSAGE;
- return -1;
- }
- }
- exit(1);
- }
-
if (iperf_parse_arguments(test, argc, argv) < 0) {
iperf_err(test, "parameter error - %s", iperf_strerror(i_errno));
fprintf(stderr, "\n");
@@ -101,7 +88,7 @@ main(int argc, char **argv)
exit(1);
}
- if (iperf_run(test) < 0)
+ if (run(test) < 0)
iperf_errexit(test, "error - %s", iperf_strerror(i_errno));
iperf_free_test(test);
@@ -110,8 +97,8 @@ main(int argc, char **argv)
}
/**************************************************************************/
-int
-iperf_run(struct iperf_test * test)
+static int
+run(struct iperf_test *test)
{
int consecutive_errors;