':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):

    if (not kb.kb.get('detect_transparent_proxy', 'detect_transparent_proxy')):
        response = self._uri_opener.GET(fuzzable_request.get_url(), cache=True)
        if self._has_proxy_headers(response):
            self._report_finding(response)
    if (not kb.kb.get('detect_reverse_proxy', 'detect_reverse_proxy')):
        response = self._uri_opener.TRACE(fuzzable_request.get_url(), cache=True)
        if self._has_proxy_content(response):
            self._report_finding(response)
    if (not kb.kb.get('detect_reverse_proxy', 'detect_reverse_proxy')):
        response = self._uri_opener.TRACK(fuzzable_request.get_url(), cache=True)
        if self._has_proxy_content(response):
            self._report_finding(response)
    if (not kb.kb.get('detect_reverse_proxy', 'detect_reverse_proxy')):
        om.out.information("The    remote    web    server    doesn't    seem    to    have    a    reverse    proxy.")
