summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2017-10-07 13:39:12 -0400
committerMicah Anderson <micah@riseup.net>2018-01-12 14:58:32 -0500
commit01cfa7e013179f17d981ef8ca9822a8c3bd727ff (patch)
tree178b818e8409ce47fe158648c2afaad5e5e4a6db
parent7170dae37787ad213ace30648a5929a1171f7529 (diff)
add v3 hidden service support
-rw-r--r--README.md10
-rw-r--r--manifests/daemon/hidden_service.pp2
-rw-r--r--templates/torrc.hidden_service.erb8
3 files changed, 19 insertions, 1 deletions
diff --git a/README.md b/README.md
index b44f7e3..2cf89df 100644
--- a/README.md
+++ b/README.md
@@ -183,7 +183,15 @@ To configure a tor hidden service you can do something like the following:
ports => 22;
}
-The `HiddenServiceDir` is set to the `${data_dir}/${name}`.
+The `HiddenServiceDir` is set to the `${data_dir}/${name}`, but you can override
+it with the parameter `datadir`.
+
+If you wish to enable v3-style hidden services to correspond with the v2-style
+hidden services (the same configuration will be applied to both), you can pass
+the parameter `v3 => true`. The default is `false`.
+
+If you wish to enable single-hop onion addresses, you can enable them by
+passing `single_hop => true`. The default is `false`.
## Configuring directories<a name="configuring-directories"></a>
diff --git a/manifests/daemon/hidden_service.pp b/manifests/daemon/hidden_service.pp
index 4549cc7..9e053cc 100644
--- a/manifests/daemon/hidden_service.pp
+++ b/manifests/daemon/hidden_service.pp
@@ -2,9 +2,11 @@
define tor::daemon::hidden_service(
$ports = [],
$single_hop = false,
+ $v3 = false,
$data_dir = $tor::daemon::data_dir ) {
+
if $single_hop {
file { "${$data_dir}/${$name}/onion_service_non_anonymous":
ensure => 'present',
diff --git a/templates/torrc.hidden_service.erb b/templates/torrc.hidden_service.erb
index 6672937..c7dbe9e 100644
--- a/templates/torrc.hidden_service.erb
+++ b/templates/torrc.hidden_service.erb
@@ -10,3 +10,11 @@ HiddenServiceDir <%= @data_dir %>/<%= @name %>
HiddenServicePort <%= port %>
<% end -%>
+<% if @v3 != false %>
+# hidden service v3 static
+HiddenServiceDir <%= @data_dir %>/<%= @name -%>3
+HiddenServiceVersion 3
+<% Array(@ports).each do |port| -%>
+HiddenServicePort <%= port %>
+<% end -%>
+<% end -%>