amk pointed out that syslog may use UDP or TCP sockets.

Update to try UDP, if that fails, try TCP.
This commit is contained in:
Neal Norwitz 2003-01-26 16:15:24 +00:00
parent cc4c50c0ed
commit f4cdb474b6
1 changed files with 7 additions and 1 deletions

View File

@ -349,7 +349,13 @@ class SysLogHandler(logging.Handler):
self.facility = facility
if type(address) == types.StringType:
self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
self.socket.connect(address)
# syslog may require either DGRAM or STREAM sockets
try:
self.socket.connect(address)
except socket.error:
self.socket.close()
self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
self.socket.connect(address)
self.unixsocket = 1
else:
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)