Issue #16168: Use specified socket type for domain sockets in SysLogHandler.

This commit is contained in:
Vinay Sajip 2012-10-09 08:17:41 +01:00
parent 1906c0c992
commit 6ecdb58154
1 changed files with 2 additions and 8 deletions

View File

@ -764,18 +764,12 @@ class SysLogHandler(logging.Handler):
self.formatter = None
def _connect_unixsocket(self, address):
self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
# syslog may require either DGRAM or STREAM sockets
self.socket = socket.socket(socket.AF_UNIX, self.socktype)
try:
self.socket.connect(address)
except socket.error:
self.socket.close()
self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
try:
self.socket.connect(address)
except socket.error:
self.socket.close()
raise
raise
# curious: when talking to the unix-domain '/dev/log' socket, a
# zero-terminator seems to be required. this string is placed