diff options
author | Rob Austein <sra@hactrn.net> | 2007-11-07 22:19:44 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2007-11-07 22:19:44 +0000 |
commit | 73456dc8efbcb97203bef6d6df5cc89fa7922c00 (patch) | |
tree | 76cfc05c827d99a462239e78d72dfd156f75afb1 /scripts/rpki/up_down.py | |
parent | 0e02c98a989c077ad5d3ce8e3ca3eee2da983ea0 (diff) |
Another premature optimization bug
svn path=/scripts/rpki/up_down.py; revision=1269
Diffstat (limited to 'scripts/rpki/up_down.py')
-rw-r--r-- | scripts/rpki/up_down.py | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/scripts/rpki/up_down.py b/scripts/rpki/up_down.py index 520b0ddf..511b6e73 100644 --- a/scripts/rpki/up_down.py +++ b/scripts/rpki/up_down.py @@ -168,29 +168,27 @@ class list_pdu(base_elt): """Serve one "list" PDU.""" r_msg.payload = list_response_pdu() irdb_as, irdb_v4, irdb_v6 = rpki.left_right.irdb_query(gctx, child.self_id, child.child_id) - for ca_id in rpki.sql.fetch_column(gctx, """ - SELECT ca.ca_id FROM ca, parent - WHERE ca.parent_id = parent.parent_id AND parent.self_id = %s - """ % child.self_id): - ca_detail = rpki.sql.ca_detail_obj.sql_fetch_active(gctx, ca_id) - if not ca_detail: - continue - rc_as, rc_v4, rc_v6 = ca_detail.latest_ca_cert.get_3779resources(irdb_as, irdb_v4, irdb_v6) - if not rc_as and not rc_v4 and not rc_v6: - continue - rc = class_elt() - rc.class_name = str(ca_id) - rc.cert_url = multi_uri(ca_detail.ca_cert_uri) - rc.resource_set_as, rc.resource_set_ipv4, rc.resource_set_ipv6 = rc_as, rc_v4, rc_v6 - for child_cert in rpki.sql.child_cert_obj.sql_fetch_where(gctx, """ - child_id = %s AND ca_detail_id = %s - """ % (child.child_id, ca_detail.ca_detail_id)): - c = certificate_elt() - c.cert_url = multi_uri(ca.sia_uri + child_cert.cert.gSKI() + ".cer") - c.cert = child_cert.cert - rc.certs.append(c) - rc.issuer = ca_detail.latest_ca_cert - r_msg.payload.classes.append(rc) + for parent in rpki.left_right.parent_elt.sql_fetch_where(gctx, "parent.self_id = %s" % child.self_id): + for ca in rpki.sql.ca_obj.sql_fetch_where(gctx, "ca.parent_id = %s" % parent.parent_id): + ca_detail = rpki.sql.ca_detail_obj.sql_fetch_active(gctx, ca.ca_id) + if not ca_detail: + continue + rc_as, rc_v4, rc_v6 = ca_detail.latest_ca_cert.get_3779resources(irdb_as, irdb_v4, irdb_v6) + if not rc_as and not rc_v4 and not rc_v6: + continue + rc = class_elt() + rc.class_name = str(ca.ca_id) + rc.cert_url = multi_uri(ca_detail.ca_cert_uri) + rc.resource_set_as, rc.resource_set_ipv4, rc.resource_set_ipv6 = rc_as, rc_v4, rc_v6 + for child_cert in rpki.sql.child_cert_obj.sql_fetch_where(gctx, """ + child_id = %s AND ca_detail_id = %s + """ % (child.child_id, ca_detail.ca_detail_id)): + c = certificate_elt() + c.cert_url = multi_uri(ca.sia_uri + child_cert.cert.gSKI() + ".cer") + c.cert = child_cert.cert + rc.certs.append(c) + rc.issuer = ca_detail.latest_ca_cert + r_msg.payload.classes.append(rc) @classmethod def query(cls, gctx, parent): |