lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

dnscrypt-proxy.init (3943B)


      1 #!/bin/sh /etc/rc.common
      2 
      3 START=50
      4 USE_PROCD=1
      5 PROG=/usr/sbin/dnscrypt-proxy
      6 CONFIG_DIR=/var/etc
      7 USER=nobody
      8 
      9 dnscrypt_instance() {   
     10     local config_path="$CONFIG_DIR/dnscrypt-proxy-$1.conf"     
     11     create_config_file $1 "$config_path"
     12 
     13     procd_open_instance
     14     procd_set_param command $PROG "$config_path"
     15     procd_close_instance
     16 }
     17 
     18 create_config_file() {
     19     local address port resolver resolvers_list ephemeral_keys client_key syslog syslog_prefix local_cache query_log_file block_ipv6 provider_name provider_key resolver_address
     20     local config_path="$2"
     21 
     22     [ ! -d "$CONFIG_DIR" ] && mkdir -p "$CONFIG_DIR"
     23     [ -f "$config_path" ] && rm "$config_path"
     24 
     25     config_get      address         $1 'address'        '127.0.0.1'
     26     config_get      port            $1 'port'           '5353'
     27     config_get      resolver        $1 'resolver'       ''
     28     config_get      provider_name   $1 'providername'   ''
     29     config_get      provider_key    $1 'providerkey'    ''
     30     config_get      resolver_address $1 'resolveraddress'    ''
     31     config_get      resolvers_list  $1 'resolvers_list' '/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv'
     32     config_get      client_key      $1 'client_key'     ''
     33     config_get      syslog_prefix   $1 'syslog_prefix'  'dnscrypt-proxy'
     34     config_get      query_log_file  $1 'query_log_file' ''
     35     config_get_bool syslog          $1 'syslog'         '1'
     36     config_get_bool ephemeral_keys  $1 'ephemeral_keys' '0'
     37     config_get_bool local_cache     $1 'local_cache'    '0'
     38     config_get_bool block_ipv6      $1 'block_ipv6'     '0'
     39 	
     40     append_param_not_empty  "ResolverName"  "$resolver"         $config_path
     41     append_param            "ResolversList" "$resolvers_list"   $config_path
     42     append_param_not_empty  "ProviderName"  "$provider_name"    $config_path
     43     append_param_not_empty  "ProviderKey"   "$provider_key"     $config_path
     44     append_param_not_empty  "ResolverAddress" "$resolver_address" $config_path
     45     append_param            "User"          "$USER"             $config_path
     46     append_param            "LocalAddress"  "$address:$port"    $config_path
     47     append_param_not_empty  "ClientKey"     "$client_key"       $config_path
     48     append_on_off           "EphemeralKeys" $ephemeral_keys     $config_path
     49     append_on_off           "Syslog"        $syslog             $config_path
     50     append_param            "SyslogPrefix"  "$syslog_prefix"    $config_path
     51     append_on_off           "LocalCache"    $local_cache        $config_path
     52     append_param_not_empty  "QueryLogFile"  "$query_log_file"   $config_path
     53     append_yes_no           "BlockIPv6"     $block_ipv6         $config_path
     54 
     55     config_list_foreach $1 'blacklist' append_blacklists $config_path	
     56 }
     57 
     58 append_on_off() {
     59     local param_name=$1
     60     local param_value=$2
     61     local config_path=$3
     62     local value
     63 
     64     if [ $param_value -eq 1 ]
     65     then
     66         value="on"	
     67     else
     68         value="off"
     69     fi
     70 
     71     echo "$param_name $value" >> $config_path
     72 }
     73 
     74 append_yes_no() {
     75     local param_name=$1
     76     local param_value=$2
     77     local config_path=$3
     78     local value
     79 
     80     if [ $param_value -eq 1 ]
     81     then
     82         value="yes"	
     83     else
     84         value="no"
     85     fi
     86 
     87     echo "$param_name $value" >> $config_path
     88 }
     89 
     90 append_param() {
     91     local param_name=$1
     92     local param_value=$2
     93     local config_path=$3
     94 	
     95     echo "$param_name $param_value" >> $config_path
     96 }
     97 
     98 append_param_not_empty() {
     99     local param_name=$1
    100     local param_value=$2
    101     local config_path=$3
    102 
    103     if [ ! -z "$param_value" -a "$param_value" != " " ]
    104     then
    105         append_param "$param_name" "$param_value" "$config_path"
    106     fi
    107 }
    108 
    109 append_blacklists() {
    110     local value="$1"
    111     local config_path="$2"	
    112     append_param_not_empty "BlackList" "$value" $config_path
    113 }
    114 
    115 start_service() {
    116     config_load dnscrypt-proxy
    117     config_foreach dnscrypt_instance dnscrypt-proxy
    118 }
    119 
    120 service_triggers() {
    121     procd_add_reload_trigger 'dnscrypt-proxy'
    122 }