mirror of
https://github.com/nmap/nmap.git
synced 2026-08-04 06:40:48 +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:
parent
28705df8ac
commit
683382bd68
1 changed files with 16 additions and 5 deletions
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":
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue