/// `UPLOAD_RATE_LIM_THRESHOLD` seconds ago. If so, it uploads the descriptor to all HsDirs that
/// need it. If not, it schedules the upload to happen `UPLOAD_RATE_LIM_THRESHOLD` seconds from the
// number of concurrent upload tasks is multiplied by a number which depends on the TP parameters
.ok_or_else(|| internal!("identity keys are offline, but descriptor signing key is unavailable?!"))?
/// [encrypted time in period]: https://spec.torproject.org/rend-spec/revision-counter-mgt.html#encrypted-time
/// An error that has occurred after we have contacted a directory cache and made a circuit to it.
fn replace_config_if_changed(&self, new_config: Arc<OnionServiceConfigPublisherView>) -> bool {
"Running in restricted discovery mode, but we have no authorized clients. Service will be unreachable"
// Note: a broken restricted discovery config won't prevent future uploads from being scheduled
// which can can cause the publisher's status to oscillate between `Bootstrapping` and `Broken`.
// This fails to compile unless the stream is boxed. See https://github.com/rust-lang/rust/issues/104382
// If the path doesn't exist, the notify watcher will return an error if we attempt to watch it,