| #!/bin/sh /etc/rc.common |
| # Copyright (C) 2006-2011 OpenWrt.org |
| |
| START=50 |
| STOP=50 |
| |
| USE_PROCD=1 |
| |
| TORRC_GEN="/tmp/torrc" |
| |
| handle_conf_file() { |
| local conf_path="$1" |
| if [ -f "$conf_path" ] || [ -d "$conf_path" ]; then |
| echo "%include $conf_path" |
| fi |
| } |
| |
| generate_conf() { |
| local default_conf generated_conf |
| |
| config_load tor |
| config_get default_conf conf default "/etc/tor/torrc" |
| config_get generated_conf conf generated "/tmp/torrc" |
| TORRC_GEN="$generated_conf" |
| |
| { |
| echo "## This file was automatically generated please do not edit here !" |
| config_list_foreach "conf" head_include handle_conf_file |
| echo "%include $default_conf" |
| config_list_foreach "conf" tail_include handle_conf_file |
| } > "$TORRC_GEN" |
| } |
| |
| reload_service() { |
| procd_send_signal /usr/sbin/tor |
| } |
| |
| start_service() { |
| mkdir -m 0700 -p /var/lib/tor |
| chown -R tor:tor /var/lib/tor |
| |
| mkdir -m 0755 -p /var/log/tor |
| chown -R tor:tor /var/log/tor |
| |
| generate_conf |
| |
| procd_open_instance |
| procd_set_param command /usr/sbin/tor --runasdaemon 0 |
| procd_append_param command -f "$TORRC_GEN" |
| procd_set_param respawn |
| procd_close_instance |
| } |