diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/rpki/sax_utils.py | 10 | ||||
-rwxr-xr-x | scripts/rpkid.py | 4 |
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) |