Browse Source

network: Use SOCK_CLOEXEC when available

tags/n2.1
Luca Barbato 12 years ago
parent
commit
bb9378251a
5 changed files with 15 additions and 4 deletions
  1. +9
    -0
      libavformat/network.h
  2. +1
    -1
      libavformat/sctp.c
  3. +3
    -1
      libavformat/tcp.c
  4. +1
    -1
      libavformat/udp.c
  5. +1
    -1
      libavformat/unix.c

+ 9
- 0
libavformat/network.h View File

@@ -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);

#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 */

+ 1
- 1
libavformat/sctp.c View File

@@ -198,7 +198,7 @@ static int sctp_open(URLContext *h, const char *uri, int flags)

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)
goto fail;



+ 3
- 1
libavformat/tcp.c View File

@@ -84,7 +84,9 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
cur_ai = ai;

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) {
ret = ff_neterrno();
goto fail;


+ 1
- 1
libavformat/udp.c View File

@@ -270,7 +270,7 @@ static int udp_socket_create(UDPContext *s, struct sockaddr_storage *addr,
if (res0 == 0)
goto fail;
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;
log_net_error(NULL, AV_LOG_ERROR, "socket");
}


+ 1
- 1
libavformat/unix.c View File

@@ -71,7 +71,7 @@ static int unix_open(URLContext *h, const char *filename, int flags)
s->addr.sun_family = AF_UNIX;
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();

if (s->listen) {


Loading…
Cancel
Save