'Checks if the remote website is vulnerable or not. Saves the result in
self._content_negotiation_enabled , because we want to perform this test
only once.
:return: True if vulnerable.'

def _verify_content_neg_enabled(self, fuzzable_request):

    if (self._content_negotiation_enabled is not None):
        return self._content_negotiation_enabled
    else:
        filename = fuzzable_request.get_url().get_file_name()
        if (filename == ''):
            return None
        filename = filename.split('.')[0]
        alternate_resource = fuzzable_request.get_url().url_join(filename)
        headers = fuzzable_request.get_headers()
        headers['Accept'] = 'w3af/bar'
        response = self._uri_opener.GET(alternate_resource, headers=headers)
        if response.get_headers().icontains('alternates'):
            self._content_negotiation_enabled = True
            desc = 'HTTP    Content    negotiation    is    enabled    in    the    remote    web    server.    This    could    be    used    to    bruteforce    file    names    and    find    new    resources.'
            i = Info('HTTP    Content    Negotiation    enabled', desc, response.id, self.get_name())
            i.set_url(response.get_url())
            kb.kb.append(self, 'content_negotiation', i)
            om.out.information(i.get_desc())
        else:
            om.out.information('The    remote    Web    server    has    Content    Negotiation    disabled.')
            self._tries_left -= 1
            if (self._tries_left == 0):
                self._content_negotiation_enabled = False
            else:
                return None
        return self._content_negotiation_enabled
