| @@ -246,4 +246,13 @@ int ff_listen_connect(int fd, const struct sockaddr *addr, | |||||
| int ff_http_match_no_proxy(const char *no_proxy, const char *hostname); | int ff_http_match_no_proxy(const char *no_proxy, const char *hostname); | ||||
| #ifndef SOCK_CLOEXEC | |||||
| #define SOCK_CLOEXEC 0 | |||||
| #endif | |||||
| static inline int ff_socket(int domain, int type, int protocol) | |||||
| { | |||||
| return socket(domain, type | SOCK_CLOEXEC, protocol); | |||||
| } | |||||
| #endif /* AVFORMAT_NETWORK_H */ | #endif /* AVFORMAT_NETWORK_H */ | ||||
| @@ -198,7 +198,7 @@ static int sctp_open(URLContext *h, const char *uri, int flags) | |||||
| cur_ai = ai; | cur_ai = ai; | ||||
| fd = socket(cur_ai->ai_family, SOCK_STREAM, IPPROTO_SCTP); | |||||
| fd = ff_socket(cur_ai->ai_family, SOCK_STREAM, IPPROTO_SCTP); | |||||
| if (fd < 0) | if (fd < 0) | ||||
| goto fail; | goto fail; | ||||
| @@ -84,7 +84,9 @@ static int tcp_open(URLContext *h, const char *uri, int flags) | |||||
| cur_ai = ai; | cur_ai = ai; | ||||
| restart: | restart: | ||||
| fd = socket(cur_ai->ai_family, cur_ai->ai_socktype, cur_ai->ai_protocol); | |||||
| fd = ff_socket(cur_ai->ai_family, | |||||
| cur_ai->ai_socktype, | |||||
| cur_ai->ai_protocol); | |||||
| if (fd < 0) { | if (fd < 0) { | ||||
| ret = ff_neterrno(); | ret = ff_neterrno(); | ||||
| goto fail; | goto fail; | ||||
| @@ -270,7 +270,7 @@ static int udp_socket_create(UDPContext *s, struct sockaddr_storage *addr, | |||||
| if (res0 == 0) | if (res0 == 0) | ||||
| goto fail; | goto fail; | ||||
| for (res = res0; res; res=res->ai_next) { | for (res = res0; res; res=res->ai_next) { | ||||
| udp_fd = socket(res->ai_family, SOCK_DGRAM, 0); | |||||
| udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, 0); | |||||
| if (udp_fd != -1) break; | if (udp_fd != -1) break; | ||||
| log_net_error(NULL, AV_LOG_ERROR, "socket"); | log_net_error(NULL, AV_LOG_ERROR, "socket"); | ||||
| } | } | ||||
| @@ -71,7 +71,7 @@ static int unix_open(URLContext *h, const char *filename, int flags) | |||||
| s->addr.sun_family = AF_UNIX; | s->addr.sun_family = AF_UNIX; | ||||
| av_strlcpy(s->addr.sun_path, filename, sizeof(s->addr.sun_path)); | av_strlcpy(s->addr.sun_path, filename, sizeof(s->addr.sun_path)); | ||||
| if ((fd = socket(AF_UNIX, s->type, 0)) < 0) | |||||
| if ((fd = ff_socket(AF_UNIX, s->type, 0)) < 0) | |||||
| return ff_neterrno(); | return ff_neterrno(); | ||||
| if (s->listen) { | if (s->listen) { | ||||