From 733c5e3e16b8bb8c62b63ea2d51b7a25b183c8e5 Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Sun, 1 Dec 2024 15:41:30 +0100 Subject: [PATCH] Handle unavailable syslog server (#14) * reconnect when syslog server is unavailable * ignore unavailable syslog server on startup --- syslog/journal2syslog.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/syslog/journal2syslog.py b/syslog/journal2syslog.py index db97c03..061d99a 100644 --- a/syslog/journal2syslog.py +++ b/syslog/journal2syslog.py @@ -60,6 +60,15 @@ def _wrap_sock_ssl(self, sock: socket.socket, host: str): return context.wrap_socket(sock, server_hostname=host) + def handleError(self, _): + """ + Handle errors silent + Close failing socket so next emit will try to create a new socket + """ + if self.socket is not None: + self.socket.close() + self.socket = None + def createSocket(self): """ Try to create a socket and, if it's not a datagram socket, connect it @@ -103,7 +112,8 @@ def createSocket(self): err = exc if sock is not None: sock.close() - if err is not None: + if isinstance(err, ssl.SSLError): + # only fail on ssl errors raise err self.socket = sock self.socktype = socktype