openvpn-authenticator: Break read loop when daemon goes away

Fixes: #12963
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Tested-by: Adolf Belka <adolf.belka@ipfire.org>
This commit is contained in:
Michael Tremer
2022-12-06 10:01:44 +00:00
committed by Peter Müller
parent 91abc6660a
commit 3ee199871b

View File

@@ -68,6 +68,12 @@ class OpenVPNAuthenticator(object):
while True:
char = self.sock.recv(1)
# Break if we could not read from the socket
if not char:
raise EOFError("Could not read from socket")
# Append to buffer
buf.append(char)
# Reached end of line
@@ -112,7 +118,7 @@ class OpenVPNAuthenticator(object):
self._client_event(line)
# Terminate the daemon when it loses its connection to the OpenVPN daemon
except ConnectionResetError as e:
except (ConnectionResetError, EOFError) as e:
log.error("Connection to OpenVPN has been lost: %s" % e)
log.info("OpenVPN Authenticator terminated")