summaryrefslogtreecommitdiff
path: root/libavformat/sctp.c
diff options
context:
space:
mode:
authorRémi Denis-Courmont <remi@remlab.net>2014-08-20 23:06:07 +0300
committerMartin Storsjö <martin@martin.st>2014-08-25 10:49:14 +0300
commit6ee1cb5740e7490151db7dcec7e20ceaf8a2fe1f (patch)
treee6971b95e3a5073be0a3a27c2e7f4ba70daa3d3e /libavformat/sctp.c
parentb263f8ffe7599d9cd27ec477a12700da8eb2790d (diff)
libavformat: use MSG_NOSIGNAL when applicable
If the remote end of a connection oriented socket hangs up, generating an EPIPE error is preferable over an unhandled SIGPIPE signal. Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/sctp.c')
-rw-r--r--libavformat/sctp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libavformat/sctp.c b/libavformat/sctp.c
index 66b31ccec6..84a4ac1938 100644
--- a/libavformat/sctp.c
+++ b/libavformat/sctp.c
@@ -143,7 +143,7 @@ static int ff_sctp_send(int s, const void *msg, size_t len,
memcpy(CMSG_DATA(cmsg), sinfo, sizeof(struct sctp_sndrcvinfo));
}
- return sendmsg(s, &outmsg, flags);
+ return sendmsg(s, &outmsg, flags | MSG_NOSIGNAL);
}
typedef struct SCTPContext {
@@ -300,7 +300,7 @@ static int sctp_write(URLContext *h, const uint8_t *buf, int size)
abort();
ret = ff_sctp_send(s->fd, buf + 2, size - 2, &info, MSG_EOR);
} else
- ret = send(s->fd, buf, size, 0);
+ ret = send(s->fd, buf, size, MSG_NOSIGNAL);
return ret < 0 ? ff_neterrno() : ret;
}