aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-10-07 08:38:30 -0400
committerNick Mathewson <nickm@torproject.org>2020-10-07 08:38:30 -0400
commit40f0db75bd3617bc5c4fb76aa62adcf21cea9697 (patch)
tree246738c1697bbb2295e144a664a8e4ca27e6b892
parent884cad3edffb644a3da8b1e7e704678225cfe4ac (diff)
parentb404f085adb54f20c7a5084c2b92609dce422db1 (diff)
downloadtor-40f0db75bd3617bc5c4fb76aa62adcf21cea9697.tar.gz
tor-40f0db75bd3617bc5c4fb76aa62adcf21cea9697.zip
Merge branch 'maint-0.3.5' into maint-0.4.3
-rw-r--r--changes/ticket400033
-rw-r--r--src/feature/rend/rendservice.c19
2 files changed, 22 insertions, 0 deletions
diff --git a/changes/ticket40003 b/changes/ticket40003
new file mode 100644
index 0000000000..240f464353
--- /dev/null
+++ b/changes/ticket40003
@@ -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.
diff --git a/src/feature/rend/rendservice.c b/src/feature/rend/rendservice.c
index 182e935fa1..12ff056678 100644
--- a/src/feature/rend/rendservice.c
+++ b/src/feature/rend/rendservice.c
@@ -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) {