From: Vinay Sajip Date: Mon, 22 Apr 2013 09:14:12 +0000 (+0100) Subject: Closes #17795: Reverted backwards-incompatible change in SysLogHandler with Unix... X-Git-Tag: v3.4.0a1~860 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=40589f4b6307ddfa840cdca1d2446415b813a796;p=python Closes #17795: Reverted backwards-incompatible change in SysLogHandler with Unix domain sockets. --- 40589f4b6307ddfa840cdca1d2446415b813a796 diff --cc Lib/logging/handlers.py index b5478d9021,95e23a8b78..bed09f05d0 --- a/Lib/logging/handlers.py +++ b/Lib/logging/handlers.py @@@ -764,7 -773,7 +764,11 @@@ class SysLogHandler(logging.Handler) If address is specified as a string, a UNIX socket is used. To log to a local syslogd, "SysLogHandler(address="/dev/log")" can be used. -- If facility is not specified, LOG_USER is used. ++ If facility is not specified, LOG_USER is used. If socktype is ++ specified as socket.SOCK_DGRAM or socket.SOCK_STREAM, that specific ++ socket type will be used. For Unix sockets, you can also specify a ++ socktype of None, in which case socket.SOCK_DGRAM will be used, falling ++ back to socket.SOCK_STREAM. """ logging.Handler.__init__(self) @@@ -783,12 -795,28 +790,28 @@@ self.formatter = None def _connect_unixsocket(self, address): - self.socket = socket.socket(socket.AF_UNIX, self.socktype) + use_socktype = self.socktype + if use_socktype is None: + use_socktype = socket.SOCK_DGRAM + self.socket = socket.socket(socket.AF_UNIX, use_socktype) try: self.socket.connect(address) + # it worked, so set self.socktype to the used type + self.socktype = use_socktype - except socket.error: + except OSError: self.socket.close() - raise + if self.socktype is not None: + # user didn't specify falling back, so fail + raise + use_socktype = socket.SOCK_STREAM + self.socket = socket.socket(socket.AF_UNIX, use_socktype) + try: + self.socket.connect(address) + # it worked, so set self.socktype to the used type + self.socktype = use_socktype - except socket.error: ++ except OSError: + self.socket.close() + raise def encodePriority(self, facility, priority): """ diff --cc Misc/NEWS index 3b0ef39349,e71b6ed016..1416cb4aea --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -49,15 -36,9 +49,18 @@@ Core and Builtin Library ------- + - Issue #17795: Reverted backwards-incompatible change in SysLogHandler with + Unix domain sockets. + +- Issue #16694: Add a pure Python implementation of the operator module. + Patch by Zachary Ware. + +- Issue #11182: remove the unused and undocumented pydoc.Scanner class. + Patch by Martin Morrison. + +- Issue #17741: Add ElementTree.IncrementalParser, an event-driven parser + for non-blocking applications. + - Issue #17555: Fix ForkAwareThreadLock so that size of after fork registry does not grow exponentially with generation of process.