1
0
mirror of https://github.com/nmap/nmap.git synced 2026-01-28 17:19:05 +00:00

Revert r12572. I remember why I split the element handlers into a helper

function. It was to make it easy to return out of the handler on error and
still have startElement and endElement maintain the element stack.
This commit is contained in:
david
2009-03-25 16:33:50 +00:00
parent 28705df8ac
commit 683382bd68

View File

@@ -659,6 +659,21 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
return self.element_stack[-1]
def startElement(self, name, attrs):
"""This method keeps track of element_stack. The real parsing work is
done in startElementAux. This is to make it easy for startElementAux to
bail out on error."""
self.startElementAux(name, attrs)
self.element_stack.append(name)
def endElement(self, name):
"""This method keeps track of element_stack. The real parsing work is
done in endElementAux."""
self.element_stack.pop()
self.endElementAux(name)
def startElementAux(self, name, attrs):
if name == u"nmaprun":
assert self.parent_element() == None
if attrs.has_key(u"start"):
@@ -778,11 +793,7 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
end_timestamp = int(attrs.get(u"time"))
self.scan.end_date = datetime.datetime.fromtimestamp(end_timestamp)
self.element_stack.append(name)
def endElement(self, name):
self.element_stack.pop()
def endElementAux(self, name):
if name == u"nmaprun":
self.scanned_ports = None
elif name == u"host":