'All the logic/magic is in this method. The logic is very simple:
* Try to delay the response in 4 seconds, if it works
* Try to delay the response in 1 seconds, if it works
* Try to delay the response in 6 seconds, if it works
(note that these delays are actually determined by DELAY_SECONDS)
* Then we have found a vulnerability!
We go up and down and change the amount of seconds in order to make sure
that WE are controlling the delay and there is no other external factor
in place.'

def delay_is_controlled(self):

    responses = []
    for delay in self.DELAY_SECONDS:
        original_wait_time = self.get_original_time()
        (success, response) = self.delay_for(delay, original_wait_time)
        if success:
            self._log_success(delay, response)
            responses.append(response)
        else:
            self._log_failure(delay, response)
            return (False, [])
    return (True, responses)
