|
|
|
@@ -18,6 +18,7 @@ |
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
|
|
*/ |
|
|
|
|
|
|
|
#include <fcntl.h> |
|
|
|
#include "network.h" |
|
|
|
#include "url.h" |
|
|
|
#include "libavcodec/internal.h" |
|
|
|
@@ -210,6 +211,24 @@ static int ff_poll_interrupt(struct pollfd *p, nfds_t nfds, int timeout, |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
int ff_socket(int af, int type, int proto) |
|
|
|
{ |
|
|
|
int fd; |
|
|
|
|
|
|
|
#ifdef SOCK_CLOEXEC |
|
|
|
fd = socket(af, type | SOCK_CLOEXEC, proto); |
|
|
|
if (fd == -1 && errno == EINVAL) |
|
|
|
#endif |
|
|
|
{ |
|
|
|
fd = socket(af, type, proto); |
|
|
|
#if HAVE_FCNTL |
|
|
|
if (fd != -1) |
|
|
|
fcntl(fd, F_SETFD, FD_CLOEXEC); |
|
|
|
#endif |
|
|
|
} |
|
|
|
return fd; |
|
|
|
} |
|
|
|
|
|
|
|
int ff_listen_bind(int fd, const struct sockaddr *addr, |
|
|
|
socklen_t addrlen, int timeout, URLContext *h) |
|
|
|
{ |
|
|
|
|