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