mirror of
https://github.com/nmap/nmap.git
synced 2025-12-11 02:09:03 +00:00
Fix Ndiff assertion failure due to new hosthint element.
This commit is contained in:
@@ -1198,10 +1198,12 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
|
|||||||
|
|
||||||
self.current_host = None
|
self.current_host = None
|
||||||
self.current_port = None
|
self.current_port = None
|
||||||
|
self.skip_over = False
|
||||||
|
|
||||||
self._start_elem_handlers = {
|
self._start_elem_handlers = {
|
||||||
u"nmaprun": self._start_nmaprun,
|
u"nmaprun": self._start_nmaprun,
|
||||||
u"host": self._start_host,
|
u"host": self._start_host,
|
||||||
|
u"hosthint": self._start_hosthint,
|
||||||
u"status": self._start_status,
|
u"status": self._start_status,
|
||||||
u"address": self._start_address,
|
u"address": self._start_address,
|
||||||
u"hostname": self._start_hostname,
|
u"hostname": self._start_hostname,
|
||||||
@@ -1215,6 +1217,7 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
|
|||||||
}
|
}
|
||||||
self._end_elem_handlers = {
|
self._end_elem_handlers = {
|
||||||
u'host': self._end_host,
|
u'host': self._end_host,
|
||||||
|
u"hosthint": self._end_hosthint,
|
||||||
u'port': self._end_port,
|
u'port': self._end_port,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1230,7 +1233,7 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
|
|||||||
done in the _start_*() handlers. This is to make it easy for them to
|
done in the _start_*() handlers. This is to make it easy for them to
|
||||||
bail out on error."""
|
bail out on error."""
|
||||||
handler = self._start_elem_handlers.get(name)
|
handler = self._start_elem_handlers.get(name)
|
||||||
if handler is not None:
|
if handler is not None and not self.skip_over:
|
||||||
handler(name, attrs)
|
handler(name, attrs)
|
||||||
self.element_stack.append(name)
|
self.element_stack.append(name)
|
||||||
|
|
||||||
@@ -1257,6 +1260,10 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
|
|||||||
self.current_host = Host()
|
self.current_host = Host()
|
||||||
self.scan.hosts.append(self.current_host)
|
self.scan.hosts.append(self.current_host)
|
||||||
|
|
||||||
|
def _start_hosthint(self, name, attrs):
|
||||||
|
assert self.parent_element() == u"nmaprun"
|
||||||
|
self.skip_over = True
|
||||||
|
|
||||||
def _start_status(self, name, attrs):
|
def _start_status(self, name, attrs):
|
||||||
assert self.parent_element() == u"host"
|
assert self.parent_element() == u"host"
|
||||||
assert self.current_host is not None
|
assert self.current_host is not None
|
||||||
@@ -1413,6 +1420,9 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
|
|||||||
self.current_host.script_results.sort()
|
self.current_host.script_results.sort()
|
||||||
self.current_host = None
|
self.current_host = None
|
||||||
|
|
||||||
|
def _end_hosthint(self, name):
|
||||||
|
self.skip_over = False
|
||||||
|
|
||||||
def _end_port(self, name):
|
def _end_port(self, name):
|
||||||
self.current_port.script_results.sort()
|
self.current_port.script_results.sort()
|
||||||
self.current_port = None
|
self.current_port = None
|
||||||
|
|||||||
Reference in New Issue
Block a user