diff --git a/quarry/net/auth.py b/quarry/net/auth.py index 169e8a5..0e38f34 100644 --- a/quarry/net/auth.py +++ b/quarry/net/auth.py @@ -90,12 +90,21 @@ def _callback(data): d1.addCallbacks(_callback, d0.errback) return d0 - @defer.inlineCallbacks def use_signing(self): + d0 = defer.Deferred() + + def _callback(data): + self.certificates = data + self.enable_signing = True + d0.callback(self) + if not self.certificates or self.certificates.is_expired(): - self.certificates = yield self._get_certificates() - self.enable_signing = True - return self.certificates + d1 = self._get_certificates() + d1.addCallbacks(_callback, d0.errback) + else: + self.enable_signing = True + d0.callback(self.certificates) + return d0 def refresh(self): d0 = defer.Deferred()