From 8e0dbb0d9d903fbf89e4263cd29c1b1a7d597075 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Thu, 26 Apr 2012 16:56:35 +0200 Subject: Fix the relay define's outbound_bindaddresses default value setting. Apparently, we have no guarantee $outbound_bindaddresses's value is set *after* $listen_addresses is, so (at least on my setup) it ends up being undef, and then the template parsing fails: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template tor/torrc.relay.erb: undefined method `each' for :undef:Symbol at /etc/puppet/modules/tor/manifests/daemon.pp:117 So, let's set $real_outbound_bindaddresses to $listen_addresses in the define body, as needed. --- manifests/daemon.pp | 8 +++++++- templates/torrc.relay.erb | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/manifests/daemon.pp b/manifests/daemon.pp index 6d8c315..dddef14 100644 --- a/manifests/daemon.pp +++ b/manifests/daemon.pp @@ -100,7 +100,7 @@ class tor::daemon inherits tor { # relay definition define relay( $port = 0, $listen_addresses = [], - $outbound_bindaddresses = $listen_addresses, + $outbound_bindaddresses = [], $bandwidth_rate = 0, # KB/s, 0 for no limit. $bandwidth_burst = 0, # KB/s, 0 for no limit. $accounting_max = 0, # GB, 0 for no limit. @@ -112,6 +112,12 @@ class tor::daemon inherits tor { $ensure = present ) { $nickname = $name + if $outbound_bindaddresses == [] { + $real_outbound_bindaddresses = $listen_addresses + } else { + $real_outbound_bindaddresses = $outbound_bindaddresses + } + concatenated_file_part { '03.relay': dir => $tor::daemon::snippet_dir, content => template('tor/torrc.relay.erb'), diff --git a/templates/torrc.relay.erb b/templates/torrc.relay.erb index 2ab34bf..990dfcc 100644 --- a/templates/torrc.relay.erb +++ b/templates/torrc.relay.erb @@ -4,7 +4,7 @@ ORPort <%= port %> <%- for listen_address in listen_addresses -%> ORListenAddress <%= listen_address %> <%- end -%> -<%- for outbound_bindaddress in outbound_bindaddresses -%> +<%- for outbound_bindaddress in real_outbound_bindaddresses -%> OutboundBindAddress <%= outbound_bindaddress %> <%- end -%> <%- if nickname != '' then -%> -- cgit v1.2.3