Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit f2352b5

Browse files
committed
Merge commit 'db5970ac6' into anoa/dinsic_release_1_21_x
* commit 'db5970ac6': Convert ACME code to async/await. (#7989)
2 parents ab298b0 + db5970a commit f2352b5

File tree

3 files changed

+11
-14
lines changed

3 files changed

+11
-14
lines changed

changelog.d/7989.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Convert various parts of the codebase to async/await.

synapse/app/homeserver.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -380,13 +380,12 @@ def setup(config_options):
380380

381381
hs.setup_master()
382382

383-
@defer.inlineCallbacks
384-
def do_acme():
383+
async def do_acme() -> bool:
385384
"""
386385
Reprovision an ACME certificate, if it's required.
387386
388387
Returns:
389-
Deferred[bool]: Whether the cert has been updated.
388+
Whether the cert has been updated.
390389
"""
391390
acme = hs.get_acme_handler()
392391

@@ -405,7 +404,7 @@ def do_acme():
405404
provision = True
406405

407406
if provision:
408-
yield acme.provision_certificate()
407+
await acme.provision_certificate()
409408

410409
return provision
411410

@@ -415,7 +414,7 @@ def reprovision_acme():
415414
Provision a certificate from ACME, if required, and reload the TLS
416415
certificate if it's renewed.
417416
"""
418-
reprovisioned = yield do_acme()
417+
reprovisioned = yield defer.ensureDeferred(do_acme())
419418
if reprovisioned:
420419
_base.refresh_certificate(hs)
421420

@@ -427,8 +426,8 @@ def start():
427426
acme = hs.get_acme_handler()
428427
# Start up the webservices which we will respond to ACME
429428
# challenges with, and then provision.
430-
yield acme.start_listening()
431-
yield do_acme()
429+
yield defer.ensureDeferred(acme.start_listening())
430+
yield defer.ensureDeferred(do_acme())
432431

433432
# Check if it needs to be reprovisioned every day.
434433
hs.get_clock().looping_call(reprovision_acme, 24 * 60 * 60 * 1000)

synapse/handlers/acme.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import twisted
1919
import twisted.internet.error
20-
from twisted.internet import defer
2120
from twisted.web import server, static
2221
from twisted.web.resource import Resource
2322

@@ -41,8 +40,7 @@ def __init__(self, hs):
4140
self.reactor = hs.get_reactor()
4241
self._acme_domain = hs.config.acme_domain
4342

44-
@defer.inlineCallbacks
45-
def start_listening(self):
43+
async def start_listening(self):
4644
from synapse.handlers import acme_issuing_service
4745

4846
# Configure logging for txacme, if you need to debug
@@ -82,18 +80,17 @@ def start_listening(self):
8280
self._issuer._registered = False
8381

8482
try:
85-
yield self._issuer._ensure_registered()
83+
await self._issuer._ensure_registered()
8684
except Exception:
8785
logger.error(ACME_REGISTER_FAIL_ERROR)
8886
raise
8987

90-
@defer.inlineCallbacks
91-
def provision_certificate(self):
88+
async def provision_certificate(self):
9289

9390
logger.warning("Reprovisioning %s", self._acme_domain)
9491

9592
try:
96-
yield self._issuer.issue_cert(self._acme_domain)
93+
await self._issuer.issue_cert(self._acme_domain)
9794
except Exception:
9895
logger.exception("Fail!")
9996
raise

0 commit comments

Comments
 (0)