# HG changeset patch # User Daniel Atallah # Date 1218584102 0 # Node ID 91169093449d835bf4c8fee8e32d8eed603faaac # Parent 2a8af2ed4b49098582452bdc5db7d8042bfae99c More leaks of fds to client processes. diff -r 2a8af2ed4b49 -r 91169093449d libpurple/network.c --- a/libpurple/network.c Tue Aug 12 23:22:47 2008 +0000 +++ b/libpurple/network.c Tue Aug 12 23:35:02 2008 +0000 @@ -351,7 +351,9 @@ } flags = fcntl(listenfd, F_GETFL); fcntl(listenfd, F_SETFL, flags | O_NONBLOCK); - +#ifndef _WIN32 + fcntl(listenfd, F_SETFD, FD_CLOEXEC); +#endif actual_port = purple_network_get_port_from_fd(listenfd); purple_debug_info("network", "Listening on port: %hu\n", actual_port); diff -r 2a8af2ed4b49 -r 91169093449d libpurple/protocols/msn/directconn.c --- a/libpurple/protocols/msn/directconn.c Tue Aug 12 23:22:47 2008 +0000 +++ b/libpurple/protocols/msn/directconn.c Tue Aug 12 23:35:02 2008 +0000 @@ -158,6 +158,9 @@ flags = fcntl(fd, F_GETFL); fcntl(fd, F_SETFL, flags | O_NONBLOCK); +#ifndef _WIN32 + fcntl(fd, F_SETFD, FD_CLOEXEC); +#endif return fd; } diff -r 2a8af2ed4b49 -r 91169093449d libpurple/protocols/msn/servconn.c --- a/libpurple/protocols/msn/servconn.c Tue Aug 12 23:22:47 2008 +0000 +++ b/libpurple/protocols/msn/servconn.c Tue Aug 12 23:35:02 2008 +0000 @@ -557,6 +557,9 @@ flags = fcntl(fd, F_GETFL); fcntl(fd, F_SETFL, flags | O_NONBLOCK); +#ifndef _WIN32 + fcntl(fd, F_SETFD, FD_CLOEXEC); +#endif return fd; } diff -r 2a8af2ed4b49 -r 91169093449d libpurple/protocols/msnp9/directconn.c --- a/libpurple/protocols/msnp9/directconn.c Tue Aug 12 23:22:47 2008 +0000 +++ b/libpurple/protocols/msnp9/directconn.c Tue Aug 12 23:35:02 2008 +0000 @@ -159,6 +159,9 @@ flags = fcntl(fd, F_GETFL); fcntl(fd, F_SETFL, flags | O_NONBLOCK); +#ifndef _WIN32 + fcntl(fd, F_SETFD, FD_CLOEXEC); +#endif return fd; } diff -r 2a8af2ed4b49 -r 91169093449d libpurple/protocols/msnp9/servconn.c --- a/libpurple/protocols/msnp9/servconn.c Tue Aug 12 23:22:47 2008 +0000 +++ b/libpurple/protocols/msnp9/servconn.c Tue Aug 12 23:35:02 2008 +0000 @@ -547,6 +547,9 @@ flags = fcntl(fd, F_GETFL); fcntl(fd, F_SETFL, flags | O_NONBLOCK); +#ifndef _WIN32 + fcntl(fd, F_SETFD, FD_CLOEXEC); +#endif return fd; } diff -r 2a8af2ed4b49 -r 91169093449d libpurple/protocols/qq/qq_network.c --- a/libpurple/protocols/qq/qq_network.c Tue Aug 12 23:22:47 2008 +0000 +++ b/libpurple/protocols/qq/qq_network.c Tue Aug 12 23:35:02 2008 +0000 @@ -743,6 +743,9 @@ /* we use non-blocking mode to speed up connection */ flags = fcntl(fd, F_GETFL); fcntl(fd, F_SETFL, flags | O_NONBLOCK); +#ifndef _WIN32 + fcntl(fd, F_SETFD, FD_CLOEXEC); +#endif /* From Unix-socket-FAQ: http://www.faqs.org/faqs/unix-faq/socket/ *