Skip to content

Commit

Permalink
hs-v2: Add deprecation warning for service
Browse files Browse the repository at this point in the history
If at least one service is configured as a version 2, a log warning is emitted
once and only once.

Closes #40003

Signed-off-by: David Goulet <[email protected]>
  • Loading branch information
dgoulet-tor authored and asn-d6 committed Jul 3, 2020
1 parent 8697205 commit 6ff4596
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
3 changes: 3 additions & 0 deletions changes/ticket40003
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
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 changes: 19 additions & 0 deletions src/feature/rend/rendservice.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,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)
Expand Down Expand Up @@ -731,6 +747,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) {
Expand Down

0 comments on commit 6ff4596

Please sign in to comment.