#!/bin/sh # # $FreeBSD: head/dns/dnscrypt-proxy/files/dnscrypt-proxy.in 373758 2014-12-02 09:21:49Z xmj $ # # PROVIDE: dnscrypt_proxy # REQUIRE: SERVERS cleanvar # BEFORE: named local_unbound unbound # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf to enable dnscrypt-proxy: # # dnscrypt_proxy_instances (str): Set to "dnscrypt_proxy" by default. # List of dnscrypt_proxy instance id's, # e.g. "dnscrypt_proxy_1 dnscrypt_proxy_2", etc. # {instance_id}_enable (bool): Set to NO by default. # Set to YES to enable dnscrypt-proxy. # {instance_id}_uid (str): Set to "_dnscrypt-proxy" by default. # User to switch to after starting. # {instance_id}_resolver (str): Set to "opendns" by default. # Choose a different upstream resolver. # {instance_id}_pidfile (str): default: "/var/run/dnscrypt-proxy.pid" # Location of pid file. # {instance_id}_logfile (str): default: "/var/log/dnscrypt-proxy.log" # Location of log file. # # To redirect a local resolver through dnscrypt-proxy, point it at 127.0.0.2 # and add the following to rc.conf: # ifconfig_lo0_alias0="inet 127.0.0.2 netmask 0xffffffff" # dnscrypt_proxy_flags='-a 127.0.0.2' . /etc/rc.subr name=dnscrypt_proxy load_rc_config ${name} : ${dnscrypt_proxy_instances="${name}"} : ${dnscrypt_proxy_enable:=NO} dnscrypt_proxy_enable_tmp=${dnscrypt_proxy_enable} command=/usr/local/sbin/dnscrypt-proxy procname=/usr/local/sbin/dnscrypt-proxy for i in $dnscrypt_proxy_instances; do name=${i} eval ${name}_enable=${dnscrypt_proxy_enable_tmp} rcvar=${name}_enable load_rc_config ${i} eval dnscrypt_proxy_uid_tmp=\${${i}_uid} eval dnscrypt_proxy_resolver_tmp=\${${i}_resolver} eval dnscrypt_proxy_pidfile_tmp=\${${i}_pidfile} eval dnscrypt_proxy_logfile_tmp=\${${i}_logfile} : ${dnscrypt_proxy_uid_tmp:=_dnscrypt-proxy} # User to run daemon as : ${dnscrypt_proxy_resolver_tmp:=opendns} # resolver to use : ${dnscrypt_proxy_pidfile_tmp:=/var/run/${i}.pid} # Path to pid file : ${dnscrypt_proxy_logfile_tmp:=/var/log/${i}.log} # Path to log file command_args="-d -p ${dnscrypt_proxy_pidfile_tmp} -l ${dnscrypt_proxy_logfile_tmp} -u ${dnscrypt_proxy_uid_tmp} -R ${dnscrypt_proxy_resolver_tmp}" pidfile=${dnscrypt_proxy_pidfile_tmp} _rc_restart_done=false # workaround for: service dnscrypt-proxy restart run_rc_command "$1" done