void initCredProcessorCallbacks()

in wangle/example/ssl/Server.cpp [79:124]


void initCredProcessorCallbacks(
    ServerBootstrap<EchoPipeline>& sb,
    TLSCredProcessor& processor) {
  // set up ticket seed callback
  processor.addTicketCallback([&](TLSTicketKeySeeds seeds) {
    if (FLAGS_enable_share_ssl_ctx) {
      sb.getSharedSSLContextManager()->updateTLSTicketKeys(seeds);
    } else {
      // update
      sb.forEachWorker([&](Acceptor* acceptor) {
        if (!acceptor) {
          // this condition can happen if the processor triggers before the
          // server is ready / listening
          return;
        }
        auto evb = acceptor->getEventBase();
        if (!evb) {
          return;
        }
        evb->runInEventBaseThread([acceptor, seeds] {
          acceptor->setTLSTicketSecrets(
              seeds.oldSeeds, seeds.currentSeeds, seeds.newSeeds);
        });
      });
    }
  });

  // Reconfigure SSL when we detect cert or CA changes.
  processor.addCertCallback([&] {
    if (FLAGS_enable_share_ssl_ctx) {
      sb.getSharedSSLContextManager()->reloadSSLContextConfigs();
    } else {
      sb.forEachWorker([&](Acceptor* acceptor) {
        if (!acceptor) {
          return;
        }
        auto evb = acceptor->getEventBase();
        if (!evb) {
          return;
        }
        evb->runInEventBaseThread(
            [acceptor] { acceptor->resetSSLContextConfigs(); });
      });
    }
  });
}