aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/rpki/sax_utils.py10
-rwxr-xr-xscripts/rpkid.py4
2 files changed, 10 insertions, 4 deletions
diff --git a/scripts/rpki/sax_utils.py b/scripts/rpki/sax_utils.py
index 06862524..058deeb2 100644
--- a/scripts/rpki/sax_utils.py
+++ b/scripts/rpki/sax_utils.py
@@ -2,7 +2,7 @@
"""SAX utilities."""
-import xml.sax
+import xml.sax, lxml.sax
class handler(xml.sax.handler.ContentHandler):
"""SAX handler for RPKI protocols.
@@ -68,3 +68,11 @@ class handler(xml.sax.handler.ContentHandler):
text = self.text.encode("ascii").strip()
self.text = ""
self.stack[-1].endElement(self.stack, name, text)
+
+ @classmethod
+ def saxify(cls, elt):
+ """Create a one-off SAX parser, parse an ETree, return the result.
+ """
+ self = cls()
+ lxml.sax.saxify(elt, self)
+ return self.result
diff --git a/scripts/rpkid.py b/scripts/rpkid.py
index 22b6bf6c..6224578d 100755
--- a/scripts/rpkid.py
+++ b/scripts/rpkid.py
@@ -18,9 +18,7 @@ def left_right_handler(query, path):
try:
q_elt = decode(query, cms_ta_irbe)
rpki.relaxng.left_right.assertValid(q_elt)
- saxer = rpki.left_right.sax_handler()
- lxml.sax.saxify(q_elt, saxer)
- q_msg = saxer.result
+ q_msg = rpki.left_right.sax_handler.saxify(q_elt)
r_msg = rpki.left_right.msg()
for q_pdu in q_msg:
q_pdu.serve_dispatch(db, cur, r_msg)