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:
21
ndiff/ndiff
21
ndiff/ndiff
@@ -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":
|
||||
|
||||
Reference in New Issue
Block a user