'For every directory, fetch a list of files and analyze the response.
:param fuzzable_request: A fuzzable_request instance that contains
(among other things) the URL to test.'

@runonce(exc_class=RunOnce)
def discover(self, fuzzable_request):

    for domain_path in fuzzable_request.get_url().get_directories():
        if (domain_path in self._analyzed_dirs):
            continue
        self._analyzed_dirs.add(domain_path)
        frontpage_info_url = domain_path.url_join('_vti_inf.html')
        try:
            response = self._uri_opener.GET(frontpage_info_url, cache=True)
        except BaseFrameworkException as w3:
            fmt = 'Failed    to    GET    Frontpage    Server    _vti_inf.html    file:    "%s".    Exception:    "%s".'
            om.out.debug((fmt % (frontpage_info_url, w3)))
        else:
            if (not is_404(response)):
                fr = FuzzableRequest(response.get_uri())
                self.output_queue.put(fr)
                self._analyze_response(response)
