diff options
author | Petr Spacek <pspacek@redhat.com> | 2015-08-31 17:58:07 +0200 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2015-09-03 18:20:36 +0200 |
commit | f1436c4ed89e96312d65e648e0b4ee47fa3a21a4 (patch) | |
tree | db6f0dd5c1dee207e3443b143dbdb498acff263f /daemons/dnssec | |
parent | e7a876d88a0ed07de69d9654ebdbf8ebb7bda364 (diff) | |
download | freeipa-f1436c4ed89e96312d65e648e0b4ee47fa3a21a4.tar.gz freeipa-f1436c4ed89e96312d65e648e0b4ee47fa3a21a4.tar.xz freeipa-f1436c4ed89e96312d65e648e0b4ee47fa3a21a4.zip |
DNSSEC: prevent ipa-ods-exporter from looping after service auto-restart
It might happen that systemd will restart the service even if there is
no incomming connection to service socket. In that case we want to exit
because HSM synchronization is done before socket.accept() and we want
to synchronize HSM and DNS zones at the same time.
https://fedorahosted.org/freeipa/ticket/5273
Reviewed-By: Martin Basti <mbasti@redhat.com>
Reviewed-By: Oleg Fayans <ofayans@redhat.com>
Diffstat (limited to 'daemons/dnssec')
-rwxr-xr-x | daemons/dnssec/ipa-ods-exporter | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/daemons/dnssec/ipa-ods-exporter b/daemons/dnssec/ipa-ods-exporter index 49be502d2..13dd2ced1 100755 --- a/daemons/dnssec/ipa-ods-exporter +++ b/daemons/dnssec/ipa-ods-exporter @@ -26,6 +26,7 @@ import logging import os import subprocess import socket +import select import sys import systemd.daemon import systemd.journal @@ -347,7 +348,12 @@ def receive_systemd_command(log): raise KeyError('Exactly one socket is expected.') sck = socket.fromfd(fds[0], socket.AF_UNIX, socket.SOCK_STREAM) + rlist, wlist, xlist = select.select([sck], [], [], 0) + if not rlist: + log.critical('socket activation did not return socket with a command') + sys.exit(0) + log.debug('accepting new connection') conn, addr = sck.accept() log.debug('accepted new connection %s', repr(conn)) |