You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.0 KiB

  1. #!/bin/sh /etc/rc.common
  2. START=50
  3. USE_PROCD=1
  4. PROG=/usr/sbin/dnscrypt-proxy
  5. dnscrypt_instance() {
  6. local address port resolver resolvers_list ephemeral_keys client_key
  7. config_get address $1 'address'
  8. config_get port $1 'port'
  9. config_get resolver $1 'resolver' ''
  10. config_get resolvers_list $1 'resolvers_list' '/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv'
  11. config_get_bool ephemeral_keys $1 'ephemeral_keys' '0'
  12. config_get client_key $1 'client_key' ''
  13. procd_open_instance
  14. procd_set_param command $PROG -u nobody -S
  15. procd_append_param command -a "$address:$port"
  16. procd_append_param command -L $resolvers_list
  17. [ -n "$resolver" ] && procd_append_param command -R $resolver
  18. [ $ephemeral_keys -eq 1 ] && procd_append_param command -E
  19. [ -n "$client_key" ] && procd_append_param command -K $client_key
  20. procd_close_instance
  21. }
  22. start_service() {
  23. config_load dnscrypt-proxy
  24. config_foreach dnscrypt_instance dnscrypt-proxy
  25. }
  26. service_triggers() {
  27. procd_add_reload_trigger 'dnscrypt-proxy'
  28. }