aboutsummaryrefslogtreecommitdiff
path: root/rpkid
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2008-06-21 20:20:07 +0000
committerRob Austein <sra@hactrn.net>2008-06-21 20:20:07 +0000
commit8b690d9845031f422879e6601de598485792dc19 (patch)
tree6b3400fb3a0443ba304e0e401b10804a483d9932 /rpkid
parent34cd3f92cd1fbae888aeb540e3dabecc6d6b61a5 (diff)
Defend against a couple of "impossible" failures
svn path=/rpkid/rpki/rpki_engine.py; revision=1918
Diffstat (limited to 'rpkid')
-rw-r--r--rpkid/rpki/rpki_engine.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/rpkid/rpki/rpki_engine.py b/rpkid/rpki/rpki_engine.py
index 49466eb3..05cf23ac 100644
--- a/rpkid/rpki/rpki_engine.py
+++ b/rpkid/rpki/rpki_engine.py
@@ -227,7 +227,9 @@ class ca_obj(rpki.sql.sql_persistant):
cert_map = dict((c.cert.get_SKI(), c) for c in rc.certs)
for ca_detail in ca_detail_obj.sql_fetch_where(self.gctx, "ca_id = %s AND latest_ca_cert IS NOT NULL AND state != 'revoked'", (self.ca_id,)):
+
ski = ca_detail.latest_ca_cert.get_SKI()
+
if ca_detail.state in ("pending", "active"):
current_resources = ca_detail.latest_ca_cert.get_3779resources()
if sia_uri_changed or \
@@ -240,8 +242,14 @@ class ca_obj(rpki.sql.sql_persistant):
rc = rc,
sia_uri_changed = sia_uri_changed,
old_resources = current_resources)
- del cert_map[ski]
- assert not cert_map, "Certificates in list_response missing from our database, SKIs %s" % ", ".join(c.cert.hSKI() for c in cert_map.values())
+
+ if ski in cert_map:
+ del cert_map[ski]
+ else:
+ rpki.log.warn("Certificate in database missing from list_response, SKI %s, this should never happen" % ":".join(("%02X" % ord(i) for i in ski)))
+
+ if cert_map:
+ rpki.log.warn("Certificates in list_response missing from our database, SKIs %s" % ", ".join(c.cert.hSKI() for c in cert_map.values()))
@classmethod
def create(cls, parent, rc):