packages/net/tinyproxy/files/tinyproxy.init
chris5560 02491213fc [packages] tinyproxy: logging problems
1.) No SysLog possible because keyword misspelled
In tinyproxy.conf and tinyproxy.config the parameter is correct spelled
with small "l"
2.) No logging as non root user
The default is that tinyproxy deamon run as nobody:nogroup, but they have no permission to /var/log/ or any other location.
So touch and change permission for logfile during startup

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
2014-07-24 14:19:12 +02:00

142 lines
3.3 KiB
Bash

#!/bin/sh /etc/rc.common
# Copyright (C) 2008-2011 OpenWrt.org
START=50
CFGFILE=/var/etc/tinyproxy.conf
section_enabled() {
config_get_bool enabled "$1" 'enabled' 0
[ $enabled -gt 0 ]
}
start() {
config_load 'tinyproxy'
config_foreach start_proxy 'tinyproxy'
}
stop() {
service_stop /usr/sbin/tinyproxy
}
start_proxy() {
section_enabled "$1" || return 1
mkdir -m0755 -p /var/etc
echo '### AUTOGENERATED CONFIGURATION' > $CFGFILE
echo '### DO NOT EDIT' >> $CFGFILE
echo '### SEE /etc/config/tinyproxy INSTEAD' >> $CFGFILE
echo '' >> $CFGFILE
proxy_atom "$1" User >> $CFGFILE
proxy_atom "$1" Group >> $CFGFILE
proxy_atom "$1" Port 8888 >> $CFGFILE
proxy_atom "$1" Listen >> $CFGFILE
proxy_atom "$1" Bind >> $CFGFILE
proxy_atom "$1" Timeout >> $CFGFILE
proxy_string "$1" ErrorFile_400 "ErrorFile 400" >> $CFGFILE
proxy_string "$1" ErrorFile_403 "ErrorFile 403" >> $CFGFILE
proxy_string "$1" ErrorFile_404 "ErrorFile 404" >> $CFGFILE
proxy_string "$1" ErrorFile_408 "ErrorFile 408" >> $CFGFILE
proxy_string "$1" ErrorFile_503 "ErrorFile 503" >> $CFGFILE
proxy_string "$1" DefaultErrorFile >> $CFGFILE
proxy_string "$1" StatHost StatHost 127.0.0.1 >> $CFGFILE
proxy_string "$1" StatFile >> $CFGFILE
proxy_string "$1" LogFile >> $CFGFILE
proxy_flag "$1" Syslog >> $CFGFILE
proxy_atom "$1" LogLevel >> $CFGFILE
proxy_list "$1" XTinyproxy >> $CFGFILE
proxy_atom "$1" MaxClients >> $CFGFILE
proxy_atom "$1" MinSpareServers >> $CFGFILE
proxy_atom "$1" MaxSpareServers >> $CFGFILE
proxy_atom "$1" StartServers >> $CFGFILE
proxy_atom "$1" MaxRequestsPerChild >> $CFGFILE
proxy_list "$1" Allow >> $CFGFILE
proxy_string "$1" ViaProxyName >> $CFGFILE
proxy_string "$1" Filter >> $CFGFILE
proxy_flag "$1" FilterURLs >> $CFGFILE
proxy_flag "$1" FilterExtended >> $CFGFILE
proxy_flag "$1" FilterCaseSensitive >> $CFGFILE
proxy_flag "$1" FilterDefaultDeny Yes No >> $CFGFILE
proxy_list "$1" Anonymous '"' >> $CFGFILE
proxy_list "$1" ConnectPort >> $CFGFILE
config_foreach write_upstream upstream
service_start /usr/sbin/tinyproxy -c "$CFGFILE"
}
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" -a -n "$via" ] && \
echo "upstream $via$target" >> $CFGFILE
[ "$type" == "reject" -a -n "$target" ] && \
echo "no upstream$target" >> $CFGFILE
}
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" -a "$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
}
}