ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/net/tinyproxy/files/tinyproxy.init b/external/subpack/net/tinyproxy/files/tinyproxy.init
new file mode 100644
index 0000000..1feac66
--- /dev/null
+++ b/external/subpack/net/tinyproxy/files/tinyproxy.init
@@ -0,0 +1,148 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008-2011 OpenWrt.org
+
+START=50
+USE_PROCD=1
+
+CFGFILE=/var/etc/tinyproxy.conf
+PROG=/usr/bin/tinyproxy
+
+section_enabled() {
+ local enabled
+ config_get_bool enabled "$1" 'enabled' 0
+ [ "$enabled" -gt 0 ]
+}
+
+write_upstream() {
+ local type
+ local via
+ local target
+
+ config_get "type" "$1" "type"
+ config_get via "$1" via
+ config_get target "$1" target
+ [ -n "$target" ] && target=' "'"$target"'"'
+
+ [ "$type" = "proxy" ] && [ -n "$via" ] && \
+ echo "upstream $via$target"
+
+ [ "$type" = "reject" ] && [ -n "$target" ] && \
+ echo "no upstream$target"
+}
+
+proxy_atom() {
+ local SECTION=$1
+ local OPTION=$2
+ local DEFAULT=$3
+
+ config_get _value "$SECTION" "$OPTION"
+ [ -z "$_value" ] && _value="$DEFAULT"
+ [ -n "$_value" ] && echo "$OPTION $_value"
+}
+
+proxy_string() {
+ local SECTION=$1
+ local OPTION=$2
+ local ALIAS=$3
+ local DEFAULT=$4
+
+ config_get _value "$SECTION" "$OPTION"
+ [ -z "$_value" ] && _value="$DEFAULT"
+ [ -n "$_value" ] && echo "${ALIAS:-${OPTION}} "'"'"$_value"'"'
+ [ -n "$_value" ] && [ "$OPTION" = "LogFile" ] && {
+ touch "$_value"
+ chmod 666 "$_value"
+ }
+}
+
+proxy_flag() {
+ local SECTION=$1
+ local OPTION=$2
+ local TRUE="${3:-On}"
+ local FALSE="${4:-Off}"
+
+ config_get_bool _value "$SECTION" "$OPTION" 0
+ [ "$_value" -eq "1" ] && _value="$TRUE" || _value="$FALSE"
+ echo "$OPTION $_value"
+}
+
+proxy_list() {
+ local SECTION=$1
+ local OPTION=$2
+ local ENCLOSE=$3
+
+ config_get _value "$SECTION" "$OPTION"
+ [ -n "$_value" ] && {
+ for entry in $_value; do
+ echo "$OPTION ${ENCLOSE}${entry}${ENCLOSE}"
+ done
+ }
+}
+
+start_proxy() {
+ section_enabled "$1" || return 1
+
+ mkdir -p /var/etc
+ chmod 0755 /var/etc
+ {
+ echo '### AUTOGENERATED CONFIGURATION'
+ echo '### DO NOT EDIT'
+ echo '### SEE /etc/config/tinyproxy INSTEAD'
+ echo ''
+
+ proxy_atom "$1" User
+ proxy_atom "$1" Group
+ proxy_atom "$1" Port 8888
+ proxy_atom "$1" Listen
+ proxy_atom "$1" Bind
+ proxy_atom "$1" Timeout
+
+ proxy_string "$1" ErrorFile_400 "ErrorFile 400"
+ proxy_string "$1" ErrorFile_403 "ErrorFile 403"
+ proxy_string "$1" ErrorFile_404 "ErrorFile 404"
+ proxy_string "$1" ErrorFile_408 "ErrorFile 408"
+ proxy_string "$1" ErrorFile_503 "ErrorFile 503"
+
+ proxy_string "$1" DefaultErrorFile
+ proxy_string "$1" StatHost StatHost 127.0.0.1
+ proxy_string "$1" StatFile
+ proxy_string "$1" LogFile
+
+ proxy_flag "$1" Syslog
+
+ proxy_atom "$1" LogLevel
+
+ proxy_flag "$1" XTinyproxy
+
+ proxy_atom "$1" MaxClients
+ proxy_atom "$1" MinSpareServers
+ proxy_atom "$1" MaxSpareServers
+ proxy_atom "$1" StartServers
+ proxy_atom "$1" MaxRequestsPerChild
+ proxy_list "$1" Allow
+
+ proxy_string "$1" ViaProxyName
+ proxy_string "$1" Filter
+
+ proxy_flag "$1" FilterURLs
+ proxy_flag "$1" FilterExtended
+ proxy_flag "$1" FilterCaseSensitive
+ proxy_flag "$1" FilterDefaultDeny Yes No
+
+ proxy_list "$1" Anonymous '"'
+ proxy_list "$1" ConnectPort
+
+ config_foreach write_upstream upstream
+ } > "$CFGFILE"
+
+ procd_open_instance
+ procd_set_param command "$PROG"
+ procd_append_param command -c "$CFGFILE"
+ procd_append_param command -d
+ procd_close_instance
+}
+
+start_service() {
+ config_load 'tinyproxy'
+ config_foreach start_proxy 'tinyproxy'
+}