Get rid of MSG_DONTWAIT using a more standard way to use a socket
in a non blocked mode. Patch by Jindrich Makovicka: makovick gmail Originally committed as revision 15846 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
2bfecf733b
commit
ce09d560b7
@ -437,6 +437,8 @@ static int udp_open(URLContext *h, const char *uri, int flags)
|
|||||||
if (setsockopt(udp_fd, SOL_SOCKET, SO_RCVBUF, &tmp, sizeof(tmp)) < 0) {
|
if (setsockopt(udp_fd, SOL_SOCKET, SO_RCVBUF, &tmp, sizeof(tmp)) < 0) {
|
||||||
av_log(NULL, AV_LOG_WARNING, "setsockopt(SO_RECVBUF): %s\n", strerror(errno));
|
av_log(NULL, AV_LOG_WARNING, "setsockopt(SO_RECVBUF): %s\n", strerror(errno));
|
||||||
}
|
}
|
||||||
|
/* make the socket non-blocking */
|
||||||
|
ff_socket_nonblock(udp_fd, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
s->udp_fd = udp_fd;
|
s->udp_fd = udp_fd;
|
||||||
@ -468,7 +470,7 @@ static int udp_read(URLContext *h, uint8_t *buf, int size)
|
|||||||
return AVERROR(EIO);
|
return AVERROR(EIO);
|
||||||
if (!(ret > 0 && FD_ISSET(s->udp_fd, &rfds)))
|
if (!(ret > 0 && FD_ISSET(s->udp_fd, &rfds)))
|
||||||
continue;
|
continue;
|
||||||
len = recv(s->udp_fd, buf, size, MSG_DONTWAIT);
|
len = recv(s->udp_fd, buf, size, 0);
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
if (ff_neterrno() != FF_NETERROR(EAGAIN) &&
|
if (ff_neterrno() != FF_NETERROR(EAGAIN) &&
|
||||||
ff_neterrno() != FF_NETERROR(EINTR))
|
ff_neterrno() != FF_NETERROR(EINTR))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user