Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hs-v2: Add deprecation warning for service #1962

Open
wants to merge 3 commits into
base: maint-0.3.5
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think we should link to the tor-dev post or the blog post here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed, maybe not ideal to have links hardcoded in our tor codebase as in the link then has to be a super long permalink...

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 configured a version 2 service. Warn of deprecation. */
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/configured/configure/g

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixup pushed!

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