diff --git a/net/zerotier/files/etc/config/zerotier b/net/zerotier/files/etc/config/zerotier index f342f851b5..34b1ad347e 100644 --- a/net/zerotier/files/etc/config/zerotier +++ b/net/zerotier/files/etc/config/zerotier @@ -4,6 +4,8 @@ config zerotier sample_config # persistent configuration folder (for ZT controller mode) #option config_path '/etc/zerotier' + # copy to RAM to prevent writing to flash (for ZT controller mode) + #option copy_config_path '1' #option port '9993' diff --git a/net/zerotier/files/etc/init.d/zerotier b/net/zerotier/files/etc/init.d/zerotier index c308b4246e..625c6db776 100755 --- a/net/zerotier/files/etc/init.d/zerotier +++ b/net/zerotier/files/etc/init.d/zerotier @@ -14,7 +14,7 @@ section_enabled() { start_instance() { local cfg="$1" - local port secret config_path local_conf path + local port secret config_path local_conf copy_config_path path local args="" if ! section_enabled "$cfg"; then @@ -26,23 +26,28 @@ start_instance() { config_get port $cfg 'port' config_get secret $cfg 'secret' config_get local_conf $cfg 'local_conf' + config_get_bool copy_config_path $cfg 'copy_config_path' 0 path=${CONFIG_PATH}_$cfg # Remove existing link or folder rm -rf $path - # Create link from CONFIG_PATH to config_path + # Create link or copy files from CONFIG_PATH to config_path if [ -n "$config_path" -a "$config_path" != "$path" ]; then if [ ! -d "$config_path" ]; then echo "ZeroTier config_path does not exist: $config_path" 1>&2 return fi - # ensure that the symlink target exists + # ensure that the target exists mkdir -p $(dirname $path) - ln -s $config_path $path + if [ "$copy_config_path" = "1" ]; then + cp -r $config_path $path + else + ln -s $config_path $path + fi fi mkdir -p $path/networks.d