def run(port, db_uri, hsts):
cert_db = CertificateDatabase(db_uri)
crtsh_checker = CrtshChecker()
app = raw_app = WSGIApplication(cert_db, crtsh_checker)
if hsts:
app = wsgi_sslify.sslify(app, subdomains=True)
def build_service(reactor):
multi = MultiService()
StreamServerEndpointService(
TCP4ServerEndpoint(reactor, port),
server.Site(
wsgi.WSGIResource(reactor, reactor.getThreadPool(), app),
)
).setServiceParent(multi)
logger = Logger()
TimerService(
# Run every 10 minutes
10 * 60,
lambda: deferToThread(
check_for_revocation, cert_db, crtsh_checker
).addErrback(
lambda f: logger.failure("Error checking for revocation", f)
)
).setServiceParent(multi)
TimerService(
60 * 60,
lambda: deferToThread(
raw_app._update_lint_summaries
).addErrback(
lambda f: logger.failure("Error updating cablint summaries", f)
)
).setServiceParent(multi)
return multi
run_service(build_service)
评论列表
文章目录