diff options
author | Rob Austein <sra@hactrn.net> | 2008-06-21 20:20:07 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2008-06-21 20:20:07 +0000 |
commit | 8b690d9845031f422879e6601de598485792dc19 (patch) | |
tree | 6b3400fb3a0443ba304e0e401b10804a483d9932 /rpkid | |
parent | 34cd3f92cd1fbae888aeb540e3dabecc6d6b61a5 (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.py | 12 |
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): |