From f4cdb474b6bdd234aa1833b7a60dbdc954ccb030 Mon Sep 17 00:00:00 2001 From: Neal Norwitz Date: Sun, 26 Jan 2003 16:15:24 +0000 Subject: [PATCH] amk pointed out that syslog may use UDP or TCP sockets. Update to try UDP, if that fails, try TCP. --- Lib/logging/handlers.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py index 38711f8d4a3..bb3fe70de47 100644 --- a/Lib/logging/handlers.py +++ b/Lib/logging/handlers.py @@ -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)