Commit 40f0db75 authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

Merge branch 'maint-0.3.5' into maint-0.4.3

parents 884cad3e b404f085
Loading
Loading
Loading
Loading

changes/ticket40003

0 → 100644
+3 −0
Original line number Diff line number Diff line
  o Deprecated features (onion service v2):
    - Add deprecation warning for onion service version 2. Tor now logs a
      warning once if a version 2 service is configured. Closes ticket 40003.
+19 −0
Original line number Diff line number Diff line
@@ -131,6 +131,22 @@ static smartlist_t *rend_service_list = NULL;
 * service on config reload. */
static smartlist_t *rend_service_staging_list = NULL;

/** Helper: log the deprecation warning for version 2 only once. */
static void
log_once_deprecation_warning(void)
{
  static bool logged_once = false;
  if (!logged_once) {
    log_warn(LD_REND, "DEPRECATED: Onion service version 2 are deprecated. "
             "Please use version 3 which is the default now. "
             "Currently, version 2 is planned to be obsolete in "
             "the Tor version 0.4.6 stable series.");
    logged_once = true;
  }
}
/** Macro to make it very explicit that we are warning about deprecation. */
#define WARN_ONCE_DEPRECATION() log_once_deprecation_warning()

/* Like rend_get_service_list_mutable, but returns a read-only list. */
static const smartlist_t*
rend_get_service_list(const smartlist_t* substitute_service_list)
@@ -732,6 +748,9 @@ rend_config_service(const config_line_t *line_,
  tor_assert(options);
  tor_assert(config);

  /* We are about to configure a version 2 service. Warn of deprecation. */
  WARN_ONCE_DEPRECATION();

  /* Use the staging service list so that we can check then do the pruning
   * process using the main list at the end. */
  if (rend_service_staging_list == NULL) {