From: Nick Mathewson Date: Fri, 2 Dec 2011 21:10:17 +0000 (-0500) Subject: Merge remote-tracking branch 'origin/maint-0.2.2' X-Git-Tag: tor-0.2.3.9-alpha~16 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d9edee3a3b98eaae5192f1307197d1a33122ec61;p=thirdparty%2Ftor.git Merge remote-tracking branch 'origin/maint-0.2.2' --- d9edee3a3b98eaae5192f1307197d1a33122ec61 diff --cc src/common/compat.c index ea95f9f085,a4e50747cd..33e2864ada --- a/src/common/compat.c +++ b/src/common/compat.c @@@ -979,19 -934,10 +979,19 @@@ tor_open_socket(int domain, int type, i /** As socket(), but counts the number of open sockets. */ tor_socket_t - tor_accept_socket(int sockfd, struct sockaddr *addr, socklen_t *len) + tor_accept_socket(tor_socket_t sockfd, struct sockaddr *addr, socklen_t *len) { - tor_socket_t s = accept(sockfd, addr, len); + tor_socket_t s; +#if defined(HAVE_ACCEPT4) && defined(SOCK_CLOEXEC) +#define LINUX_CLOEXEC_ACCEPT + s = accept4(sockfd, addr, len, SOCK_CLOEXEC); +#else + s = accept(sockfd, addr, len); +#endif if (SOCKET_OK(s)) { +#if !defined(LINUX_CLOEXEC_ACCEPT) && defined(FD_CLOEXEC) + fcntl(s, F_SETFD, FD_CLOEXEC); +#endif socket_accounting_lock(); ++n_sockets_open; mark_socket_open(s);