diff options
author | Rob Austein <sra@hactrn.net> | 2014-05-20 00:09:32 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2014-05-20 00:09:32 +0000 |
commit | 073ab401b43b9d51e79d70387b25e4cc6f8b01b7 (patch) | |
tree | 80b71fd98053425d73ce7bc323f739e43c2bffdd /rpki/rtr | |
parent | cb34da98906421cde8c391da337055efef1d3e0d (diff) |
Handle KeyboardInterrupt in listener_main().
svn path=/trunk/; revision=5829
Diffstat (limited to 'rpki/rtr')
-rw-r--r-- | rpki/rtr/server.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/rpki/rtr/server.py b/rpki/rtr/server.py index f1b741f9..0e6b86cc 100644 --- a/rpki/rtr/server.py +++ b/rpki/rtr/server.py @@ -519,7 +519,10 @@ def listener_main(args): listener.listen(5) logging.debug("[Listening on port %s]", args.port) while True: - s, ai = listener.accept() + try: + s, ai = listener.accept() + except KeyboardInterrupt: + sys.exit(0) logging.debug("[Received connection from %r]", ai) pid = os.fork() if pid == 0: @@ -531,15 +534,15 @@ def listener_main(args): sys.exit() else: logging.debug("[Spawned server %d]", pid) - try: - while True: + while True: + try: pid, status = os.waitpid(0, os.WNOHANG) # pylint: disable=W0612 if pid: logging.debug("[Server %s exited]", pid) - else: - break - except: # pylint: disable=W0702 - pass + continue + except: # pylint: disable=W0702 + pass + break def argparse_setup(subparsers): |