'When a connection attempt fails, the request cannot be issued.  If no
result has yet been provided to the result Deferred, provide the
connection failure reason as an error result.'

def clientConnectionFailed(self, _, reason):

    if self.waiting:
        self.waiting = 0
        self._disconnectedDeferred.callback(None)
        self.deferred.errback(reason)
