'Plugin entry point, send HTTP response bodies to ClamAV in an async
way in order to avoid any delays in our process.
Keep in mind that I need to wait for all answers from clamd in end()
before finishing the plugin and that (if possible) I shouldn\'t send
the same stream twice.
When sending an HTTP response body to ClamAV, I\'ll try to send it
without any decoding applied to it, just like it came from the wire.
:param request: The HTTP request object.
:param response: The HTTP response object
:return: None'

def grep(self, request, response):

    if (not self._is_properly_configured()):
        return
    if ((request.get_method() not in self.METHODS) or (response.get_code() not in self.HTTP_CODES)):
        return
    args = (request, response)
    self.worker_pool.apply_async(self._scan_http_response, args=args, callback=self._report_result)
