summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTommie Gannert <tommie@spotify.com>2013-09-10 11:55:07 +0200
committerTommie Gannert <tommie@spotify.com>2013-09-10 11:56:37 +0200
commitc6378e03bfb861fb77dacc68a05fb26d7a534180 (patch)
tree2a644028075dd4e67807ae846e57ac0c9507ff9f
parent097e0bfe5b8f9b64e38c6496160bf346411e0ff3 (diff)
downloadpy-amqp-c6378e03bfb861fb77dacc68a05fb26d7a534180.tar.gz
Set FD_CLOEXEC on opened sockets.
Since py-amqp doesn't support resuming operation from just a file descriptor, there is no use in leaving it open after execve(2).
-rw-r--r--amqp/transport.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/amqp/transport.py b/amqp/transport.py
index 6b17757..a196bec 100644
--- a/amqp/transport.py
+++ b/amqp/transport.py
@@ -22,6 +22,7 @@ Read/Write AMQP frames over network transports.
from __future__ import absolute_import
import errno
+import fcntl
import re
import socket
@@ -99,6 +100,7 @@ class _AbstractTransport(object):
# Didn't connect, return the most recent error message
raise socket.error(last_err)
+ fcntl.fcntl(self.sock, fcntl.F_SETFD, fcntl.fcntl(self.sock, fcntl.F_GETFD) | fcntl.FD_CLOEXEC)
self.sock.settimeout(None)
self.sock.setsockopt(SOL_TCP, socket.TCP_NODELAY, 1)
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)