aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorsethdelliott <devnull@localhost>2010-07-27 22:11:09 +0000
committersethdelliott <devnull@localhost>2010-07-27 22:11:09 +0000
commitffdcc7d45737a2e8179f64b95fd59a66f33db42c (patch)
tree1f0d3bab507c9414cf19ceeb6dbeff4d5aa59dcd /src/main.c
parentf99bd3b2c64448529ed794dfb79d99f39e3ad3d4 (diff)
downloadiperf3-ffdcc7d45737a2e8179f64b95fd59a66f33db42c.tar.gz
Updated iperf_error and moved the SIGINT handler out of the library
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index c05a426..0ea0269 100644
--- a/src/main.c
+++ b/src/main.c
@@ -82,6 +82,19 @@ main(int argc, char **argv)
}
iperf_defaults(test); /* sets defaults */
+ // 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, &test->state, sizeof(char), Ptcp) < 0) {
+ i_errno = IESENDMESSAGE;
+ return (-1);
+ }
+ }
+ exit(1);
+ }
+
if (iperf_parse_arguments(test, argc, argv) < 0) {
iperf_error("parameter error");
fprintf(stderr, "\n");