]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Get rid of MSG_DONTWAIT using a more standard way to use a socket
authorbenoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Mon, 17 Nov 2008 07:50:25 +0000 (07:50 +0000)
committerbenoit <benoit@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Mon, 17 Nov 2008 07:50:25 +0000 (07:50 +0000)
in a non blocked mode.
Patch by Jindrich Makovicka: makovick gmail

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@15846 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavformat/udp.c

index a8e8cd8bce16cff8cd4bac3a1a77d1e31dfd3d55..bbdb930e4ef7a69632a1f90ff873ce6796f8888c 100644 (file)
@@ -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) {
             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;
@@ -468,7 +470,7 @@ static int udp_read(URLContext *h, uint8_t *buf, int size)
             return AVERROR(EIO);
         if (!(ret > 0 && FD_ISSET(s->udp_fd, &rfds)))
             continue;
-        len = recv(s->udp_fd, buf, size, MSG_DONTWAIT);
+        len = recv(s->udp_fd, buf, size, 0);
         if (len < 0) {
             if (ff_neterrno() != FF_NETERROR(EAGAIN) &&
                 ff_neterrno() != FF_NETERROR(EINTR))