]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Merge remote-tracking branch 'origin/maint-0.2.2'
authorNick Mathewson <nickm@torproject.org>
Fri, 2 Dec 2011 21:10:17 +0000 (16:10 -0500)
committerNick Mathewson <nickm@torproject.org>
Fri, 2 Dec 2011 21:10:17 +0000 (16:10 -0500)
1  2 
src/common/compat.c
src/common/compat.h

index ea95f9f085bea3731b811bc13c05389a4feb2968,a4e50747cd514f7a78199c2639c5c0cab2983b06..33e2864adab4131f1eb0cdd081e3146fc83a2619
@@@ -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);
Simple merge