Ignore SIGPIPE signals to simplify error handling.
This is an attempt to avoid server-side crashes/exits when the client abruptly closes its control connection, as found in some testing for #549. Fixes #550.
Этот коммит содержится в:
родитель
03224c9f56
Коммит
6f414a0408
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* iperf, Copyright (c) 2014, 2015, The Regents of the University of
|
||||
* iperf, Copyright (c) 2014, 2015, 2017, The Regents of the University of
|
||||
* California, through Lawrence Berkeley National Laboratory (subject
|
||||
* to receipt of any required approvals from the U.S. Dept. of
|
||||
* Energy). All rights reserved.
|
||||
@ -130,6 +130,9 @@ run(struct iperf_test *test)
|
||||
if (setjmp(sigend_jmp_buf))
|
||||
iperf_got_sigend(test);
|
||||
|
||||
/* Ignore SIGPIPE to simplify error handling */
|
||||
signal(SIGPIPE, SIG_IGN);
|
||||
|
||||
switch (test->role) {
|
||||
case 's':
|
||||
if (test->daemon) {
|
||||
@ -169,6 +172,7 @@ run(struct iperf_test *test)
|
||||
}
|
||||
|
||||
iperf_catch_sigend(SIG_DFL);
|
||||
signal(SIGPIPE, SIG_DFL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user