summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsin <sin@2f30.org>2014-09-24 14:46:48 +0100
committersin <sin@2f30.org>2014-09-24 14:46:48 +0100
commitb87b960daaa2c4d79728d8e1d97f2d0ce1339883 (patch)
treee5dffb63dfad3442e5b070b523a93160c880541e
parentee6c055b69a608e46f23a8d3daae0527d0817e3e (diff)
Ignore SIGPIPE and only cancel on EPIPE
-rw-r--r--ratox.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ratox.c b/ratox.c
index 65c568c..4311940 100644
--- a/ratox.c
+++ b/ratox.c
@@ -545,7 +545,8 @@ cbfiledata(Tox *m, int32_t fid, uint8_t fnum, const uint8_t *data, uint16_t len,
n = write(f->fd[FFILE_OUT], data, len);
if (n < 0)
- cancelrxtransfer(f);
+ if (errno == EPIPE)
+ cancelrxtransfer(f);
}
static void
@@ -1401,6 +1402,7 @@ main(int argc, char *argv[])
signal(SIGQUIT, initshutdown);
signal(SIGABRT, initshutdown);
signal(SIGTERM, initshutdown);
+ signal(SIGPIPE, SIG_IGN);
printrat();
toxinit();