diff options
author | Rob Austein <sra@hactrn.net> | 2009-05-04 22:43:20 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2009-05-04 22:43:20 +0000 |
commit | f49a0a660655746f4001fb66277731e5f562be8e (patch) | |
tree | cbd77bb238d2cdd102144186ec833a543c94e380 | |
parent | 78f347515c13b7ba575d9c46a7ccaf1ffdc9ac65 (diff) |
Don't hang waiting for timeout of persistent connections when we know we're all done.
svn path=/rpkid/rpki/async.py; revision=2400
-rw-r--r-- | rpkid/rpki/async.py | 4 | ||||
-rw-r--r-- | rpkid/testbed.py | 1 | ||||
-rw-r--r-- | rpkid/testpoke.py | 12 |
3 files changed, 9 insertions, 8 deletions
diff --git a/rpkid/rpki/async.py b/rpkid/rpki/async.py index 164e0102..83df75eb 100644 --- a/rpkid/rpki/async.py +++ b/rpkid/rpki/async.py @@ -183,3 +183,7 @@ def event_loop(catch_signals = (signal.SIGINT, signal.SIGTERM)): finally: for sig, handler in old_signal_handlers: signal.signal(sig, handler) + +def exit_event_loop(): + """Force exit from event_loop().""" + raise asyncore.ExitNow diff --git a/rpkid/testbed.py b/rpkid/testbed.py index c2fa2df5..19938c79 100644 --- a/rpkid/testbed.py +++ b/rpkid/testbed.py @@ -285,6 +285,7 @@ class main(object): # If we've run out of deltas to apply, we're done if not yaml_script: rpki.log.info("No more deltas to apply, done") + rpki.async.exit_event_loop() else: rpki.log.info("Applying deltas") self.db.apply_delta(yaml_script.pop(0), self.apply_delta_done) diff --git a/rpkid/testpoke.py b/rpkid/testpoke.py index 86e7aaef..78191efb 100644 --- a/rpkid/testpoke.py +++ b/rpkid/testpoke.py @@ -30,7 +30,7 @@ PERFORMANCE OF THIS SOFTWARE. import os, time, getopt, sys, yaml import rpki.resource_set, rpki.up_down, rpki.left_right, rpki.x509 import rpki.https, rpki.config, rpki.exceptions -import rpki.relaxng, rpki.oids, rpki.log +import rpki.relaxng, rpki.oids, rpki.log, rpki.async os.environ["TZ"] = "UTC" time.tzset() @@ -101,6 +101,7 @@ def query_up_down(q_pdu): r_msg, r_xml = rpki.up_down.cms_msg.unwrap(der, [cms_ta] + cms_ca_certs, pretty_print = True) print r_xml r_msg.payload.check_response() + rpki.async.exit_event_loop() rpki.https.client( server_ta = [https_ta] + https_ca_certs, @@ -143,10 +144,5 @@ https_cert = get_PEM("ssl-cert", rpki.x509.X509) https_certs = get_PEM_chain("ssl-cert-chain", https_cert) https_ca_certs = get_PEM_chain("ssl-ca-certs") -if debug: - dispatch[yaml_req["type"]]() -else: - try: - dispatch[yaml_req["type"]]() - except Exception, edata: - print "Failed:", edata +dispatch[yaml_req["type"]]() +rpki.async.event_loop() |