On Thu, Sep 24, 2020 at 8:54 PM Robert DiFalco <robert.difa...@gmail.com> wrote:
> Why exactly is makeDirectory not firing any callbacks or errbacks and what > can I add at the Factory level to make it do so? > class MySSHClientFactory(SSHClientFactory): > def clientConnectionLost(self, connector, reason): > self.op.addErrback(reason) > > def makeDirectory(self, path, attrs): > self.op = Deferred() > def _cbSuccess(result): > self.op.callback(result) > > return self.sftpClient.makeDirectory(path, > attrs).addCallback(_cbSuccess)d > > This code is wrong. It takes what *may* be a perfectly good Deferred from makeDirectory and breaks the error chain off of it. The correct way to do this would be more like `makeDirectory(...).chainDeferred(self.op)`. However, `self.op` and `_cbSuccess` are doing nothing useful here so you may as well just delete all that and return the `makeDirectory(...)` Deferred. If *that* Deferred doesn't fire its errback chain when the connection is closed, that's a bug in Conch. If you can put together a minimal example and file a ticket, that would be wonderful and perhaps someone can get it fixed for you. Jean-Paul
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python