diff options
author | Rob Austein <sra@hactrn.net> | 2014-06-11 18:21:10 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2014-06-11 18:21:10 +0000 |
commit | 89439c425c95fca242a1f1974441c0e04d65e5fa (patch) | |
tree | 1afc48df1a7aeb44484d108435757dccea70b8f2 /rpki/rtr | |
parent | 2cc08642fca1d0de274b0f833adcc570d270b4b7 (diff) |
Race condition during server shutdown could prevent cleanup of kickme socket.
svn path=/trunk/; revision=5864
Diffstat (limited to 'rpki/rtr')
-rw-r--r-- | rpki/rtr/server.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/rpki/rtr/server.py b/rpki/rtr/server.py index a1aacbee..b3e4fd7c 100644 --- a/rpki/rtr/server.py +++ b/rpki/rtr/server.py @@ -24,6 +24,7 @@ import os import sys import errno import socket +import signal import logging import asyncore import rpki.POW @@ -490,9 +491,11 @@ def server_main(args): server = rpki.rtr.server.ServerChannel(logger = logger, refresh = args.refresh, retry = args.retry, expire = args.expire) kickme = rpki.rtr.server.KickmeChannel(server = server) asyncore.loop(timeout = None) + signal.signal(signal.SIGINT, signal.SIG_IGN) # Theorized race condition except KeyboardInterrupt: sys.exit(0) finally: + signal.signal(signal.SIGINT, signal.SIG_IGN) # Observed race condition if kickme is not None: kickme.cleanup() |