avformat/tcp: re-add checks for setsockopt return values

Originally added in 0ed0af595b and lost
by mistake in ef71ef5f30.

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2018-09-11 15:27:09 -03:00
parent c7488f7461
commit 092cbbfa74
1 changed files with 12 additions and 4 deletions

View File

@ -76,17 +76,25 @@ static void customize_fd(void *ctx, int fd)
/* Set the socket's send or receive buffer sizes, if specified.
If unspecified or setting fails, system default is used. */
if (s->recv_buffer_size > 0) {
setsockopt (fd, SOL_SOCKET, SO_RCVBUF, &s->recv_buffer_size, sizeof (s->recv_buffer_size));
if (setsockopt (fd, SOL_SOCKET, SO_RCVBUF, &s->recv_buffer_size, sizeof (s->recv_buffer_size))) {
ff_log_net_error(ctx, AV_LOG_WARNING, "setsockopt(SO_RCVBUF)");
}
}
if (s->send_buffer_size > 0) {
setsockopt (fd, SOL_SOCKET, SO_SNDBUF, &s->send_buffer_size, sizeof (s->send_buffer_size));
if (setsockopt (fd, SOL_SOCKET, SO_SNDBUF, &s->send_buffer_size, sizeof (s->send_buffer_size))) {
ff_log_net_error(ctx, AV_LOG_WARNING, "setsockopt(SO_SNDBUF)");
}
}
if (s->tcp_nodelay > 0) {
setsockopt (fd, IPPROTO_TCP, TCP_NODELAY, &s->tcp_nodelay, sizeof (s->tcp_nodelay));
if (setsockopt (fd, IPPROTO_TCP, TCP_NODELAY, &s->tcp_nodelay, sizeof (s->tcp_nodelay))) {
ff_log_net_error(ctx, AV_LOG_WARNING, "setsockopt(TCP_NODELAY)");
}
}
#if !HAVE_WINSOCK2_H
if (s->tcp_mss > 0) {
setsockopt (fd, IPPROTO_TCP, TCP_MAXSEG, &s->tcp_mss, sizeof (s->tcp_mss));
if (setsockopt (fd, IPPROTO_TCP, TCP_MAXSEG, &s->tcp_mss, sizeof (s->tcp_mss))) {
ff_log_net_error(ctx, AV_LOG_WARNING, "setsockopt(TCP_MAXSEG)");
}
}
#endif /* !HAVE_WINSOCK2_H */
}