aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rootd.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2009-04-24 23:03:51 +0000
committerRob Austein <sra@hactrn.net>2009-04-24 23:03:51 +0000
commit8542127f3bc823bbc7ff76e4ca8dc3bd0969318f (patch)
tree7b6a4faa5b62a03d432a6fc5a7e0be431b7aa65f /rpkid/rootd.py
parent725bc9130dd16ffffa5277382b23cda6c069ef6c (diff)
Checkpoint
svn path=/rpkid/pubd.py; revision=2355
Diffstat (limited to 'rpkid/rootd.py')
-rwxr-xr-xrpkid/rootd.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/rpkid/rootd.py b/rpkid/rootd.py
index c04a827c..21dc996a 100755
--- a/rpkid/rootd.py
+++ b/rpkid/rootd.py
@@ -144,19 +144,21 @@ def compose_response(r_msg):
rc.certs[0].cert = subject_cert
class list_pdu(rpki.up_down.list_pdu):
- def serve_pdu(self, q_msg, r_msg, ignored):
+ def serve_pdu(self, q_msg, r_msg, ignored, callback):
r_msg.payload = rpki.up_down.list_response_pdu()
compose_response(r_msg)
+ callback()
class issue_pdu(rpki.up_down.issue_pdu):
- def serve_pdu(self, q_msg, r_msg, ignored):
+ def serve_pdu(self, q_msg, r_msg, ignored, callback):
self.pkcs10.check_valid_rpki()
set_subject_pkcs10(self.pkcs10)
r_msg.payload = rpki.up_down.issue_response_pdu()
compose_response(r_msg)
+ callback()
class revoke_pdu(rpki.up_down.revoke_pdu):
- def serve_pdu(self, q_msg, r_msg, ignored):
+ def serve_pdu(self, q_msg, r_msg, ignored, callback):
subject_cert = get_subject_cert()
if subject_cert is None or subject_cert.gSKI() != self.ski:
raise rpki.exceptions.NotInDatabase
@@ -164,6 +166,7 @@ class revoke_pdu(rpki.up_down.revoke_pdu):
r_msg.payload = rpki.up_down.revoke_response_pdu()
r_msg.payload.class_name = self.class_name
r_msg.payload.ski = self.ski
+ callback()
class message_pdu(rpki.up_down.message_pdu):
name2type = {
@@ -187,20 +190,21 @@ def up_down_handler(query, path, cb):
q_msg = cms_msg.unwrap(query, (bpki_ta, child_bpki_cert))
except Exception, data:
rpki.log.error(traceback.format_exc())
- return 400, "Could not process PDU: %s" % data
- try:
- r_msg = q_msg.serve_top_level(None)
+ return cb(400, "Could not process PDU: %s" % data)
+
+ def done(r_msg):
r_cms = cms_msg.wrap(r_msg, rootd_bpki_key, rootd_bpki_cert, rootd_bpki_crl)
- return 200, r_cms
+ cb(200, r_cms)
+
+ try:
+ q_msg.serve_top_level(None, done)
except Exception, data:
rpki.log.error(traceback.format_exc())
try:
- r_msg = q_msg.serve_error(data)
- r_cms = cms_msg.wrap(r_msg, rootd_bpki_key, rootd_bpki_cert, rootd_bpki_crl)
- return 200, r_cms
+ done(q_msg.serve_error(data))
except Exception, data:
rpki.log.error(traceback.format_exc())
- return 500, "Could not process PDU: %s" % data
+ cb(500, "Could not process PDU: %s" % data)
os.environ["TZ"] = "UTC"
time.tzset()