#!/bin/sh /etc/rc.common # Copyright (C) 2015 OpenWrt.org START=90 STOP=10 USE_PROCD=1 PROG=/usr/sbin/e2guardian CONFIGFILE="/tmp/e2guardian/e2guardian.conf" LOGFILE="/tmp/e2guardian/access.log" GROUPCONFIG="/tmp/e2guardian/e2guardianf1.conf" validate_e2guardian_section() { uci_validate_section e2guardian e2guardian "${1}" \ 'accessdeniedaddress:string' \ 'bannediplist:string' \ 'contentscanexceptions:string' \ 'contentscanner:string' \ 'contentscannertimeout:uinteger' \ 'createlistcachefiles:string' \ 'custombannedflashfile:string' \ 'custombannedimagefile:string' \ 'deletedownloadedtempfiles:string' \ 'downloadmanager:string' \ 'exceptioniplist:string' \ 'filecachedir:string' \ 'filtergroups:uinteger' \ 'filtergroupslist:string' \ 'filterip:ipaddr' \ 'filterports:port:8080' \ 'forcequicksearch:string' \ 'forwardedfor:string' \ 'hexdecodecontent:string' \ 'initialtrickledelay:uinteger' \ 'ipcfilename:string' \ 'ipipcfilename:string' \ 'languagedir:string' \ 'language:string' \ 'logadblocks:string' \ 'logchildprocesshandling:string' \ 'logclienthostnames:string' \ 'logconnectionhandlingerrors:string' \ 'logexceptionhits:range(0,2)' \ 'logfileformat:range(1,6)' \ 'loglevel:range(0,3)' \ 'loglocation:string' \ 'loguseragent:string' \ 'maxagechildren:uinteger' \ 'maxchildren:uinteger' \ 'maxcontentfilecachescansize:uinteger' \ 'maxcontentfiltersize:uinteger' \ 'maxcontentramcachescansize:uinteger' \ 'maxips:uinteger' \ 'maxsparechildren:uinteger' \ 'maxuploadsize:integer' \ 'minchildren:uinteger' \ 'minsparechildren:uinteger' \ 'nodaemon:string' \ 'nologger:string' \ 'pcontimeout:range(5,300)' \ 'perroomdirectory:string' \ 'phrasefiltermode:range(0,3)' \ 'prefercachedlists:string' \ 'preforkchildren:uinteger' \ 'preservecase:range(0,2)' \ 'proxyexchange:range(20,300)' \ 'proxyip:ipaddr' \ 'proxyport:port:3128' \ 'proxytimeout:range(5,100)' \ 'recheckreplacedurls:string' \ 'reverseaddresslookups:string' \ 'reverseclientiplookups:string' \ 'scancleancache:string' \ 'showweightedfound:string' \ 'softrestart:string' \ 'trickledelay:uinteger' \ 'urlcacheage:uinteger' \ 'urlcachenumber:uinteger' \ 'urlipcfilename:string' \ 'usecustombannedflash:string' \ 'usecustombannedimage:string' \ 'usexforwardedfor:string' \ 'weightedphrasemode:range(0,2)' } start_service() { local accessdeniedaddress bannediplist contentscanexceptions contentscanner contentscannertimeout \ createlistcachefiles custombannedflashfile custombannedimagefile deletedownloadedtempfiles \ downloadmanager exceptioniplist filecachedir loglocation \ filtergroups filtergroupslist filterip filterports forcequicksearch forwardedfor hexdecodecontent \ initialtrickledelay ipcfilename ipipcfilename language languagedir logadblocks logchildprocesshandling \ logclienthostnames logconnectionhandlingerrors logexceptionhits logfileformat loglevel loguseragent \ maxagechildren maxchildren maxcontentfilecachescansize maxcontentfiltersize maxcontentramcachescansize \ maxips maxsparechildren maxuploadsize minchildren minsparechildren nodaemon nologger \ pcontimeout perroomdirectory phrasefiltermode prefercachedlists preforkchildren preservecase proxyexchange \ proxyip proxyport proxytimeout recheckreplacedurls reverseaddresslookups reverseclientiplookups scancleancache \ showweightedfound softrestart trickledelay urlcacheage urlcachenumber urlipcfilename usecustombannedflash \ usecustombannedimage usexforwardedfor weightedphrasemode validate_e2guardian_section e2guardian || { echo "validation failed" return 1 } mkdir -p $(dirname $CONFIGFILE) chown -R nobody:nogroup $(dirname $CONFIGFILE) mkdir -p $(dirname $loglocation) chown -R nobody:nogroup $(dirname $loglocation) touch $loglocation chown nobody:nogroup $loglocation ln -sf $loglocation $(dirname $LOGFILE) ln -sf /etc/e2guardian/e2guardian.conf $CONFIGFILE ln -sf /etc/e2guardian/e2guardianf1.conf $GROUPCONFIG echo "accessdeniedaddress = " $accessdeniedaddress > $CONFIGFILE echo "bannediplist = " $bannediplist >> $CONFIGFILE if [ "$contentscanner" != "" ] then echo "contentscanner = " $contentscanner >> $CONFIGFILE fi echo "contentscanexceptions = " $contentscanexceptions >> $CONFIGFILE echo "contentscannertimeout = " $contentscannertimeout >> $CONFIGFILE echo "createlistcachefiles = " $createlistcachefiles >> $CONFIGFILE echo "custombannedflashfile = " $custombannedflashfile >> $CONFIGFILE echo "custombannedimagefile = " $custombannedimagefile >> $CONFIGFILE echo "deletedownloadedtempfiles = " $deletedownloadedtempfiles >> $CONFIGFILE echo "downloadmanager = " $downloadmanager >> $CONFIGFILE echo "exceptioniplist = " $exceptioniplist >> $CONFIGFILE echo "filecachedir = " $filecachedir >> $CONFIGFILE echo "filtergroups = " $filtergroups >> $CONFIGFILE echo "filtergroupslist = " $filtergroupslist >> $CONFIGFILE echo "filterip = " $filterip >> $CONFIGFILE echo "filterports = " $filterports >> $CONFIGFILE echo "forcequicksearch = " $forcequicksearch >> $CONFIGFILE echo "forwardedfor = " $forwardedfor >> $CONFIGFILE echo "hexdecodecontent = " $hexdecodecontent >> $CONFIGFILE echo "initialtrickledelay = " $initialtrickledelay >> $CONFIGFILE echo "ipcfilename = " $ipcfilename >> $CONFIGFILE echo "ipipcfilename = " $ipipcfilename >> $CONFIGFILE echo "language = " $language >> $CONFIGFILE echo "languagedir = " $languagedir >> $CONFIGFILE echo "logadblocks = " $logadblocks >> $CONFIGFILE echo "logchildprocesshandling = " $logchildprocesshandling >> $CONFIGFILE echo "logclienthostnames = " $logclienthostnames >> $CONFIGFILE echo "logconnectionhandlingerrors = " $logconnectionhandlingerrors >> $CONFIGFILE echo "logexceptionhits = " $logexceptionhits >> $CONFIGFILE echo "logfileformat = " $logfileformat >> $CONFIGFILE echo "loglevel = " $loglevel >> $CONFIGFILE echo "loglocation = " $loglocation >> $CONFIGFILE echo "loguseragent = " $loguseragent >> $CONFIGFILE echo "maxagechildren = " $maxagechildren >> $CONFIGFILE echo "maxchildren = " $maxchildren >> $CONFIGFILE echo "maxcontentfilecachescansize = " $maxcontentfilecachescansize >> $CONFIGFILE echo "maxcontentfiltersize = " $maxcontentfiltersize >> $CONFIGFILE echo "maxcontentramcachescansize = " $maxcontentramcachescansize >> $CONFIGFILE echo "maxips = " $maxips >> $CONFIGFILE echo "maxsparechildren = " $maxsparechildren >> $CONFIGFILE echo "maxuploadsize = " $maxuploadsize >> $CONFIGFILE echo "minchildren = " $minchildren >> $CONFIGFILE echo "minsparechildren = " $minsparechildren >> $CONFIGFILE echo "nodaemon = " $nodaemon >> $CONFIGFILE echo "nologger = " $nologger >> $CONFIGFILE echo "pcontimeout = " $pcontimeout >> $CONFIGFILE echo "perroomdirectory = " $perroomdirectory >> $CONFIGFILE echo "phrasefiltermode = " $phrasefiltermode >> $CONFIGFILE echo "prefercachedlists = " $prefercachedlists >> $CONFIGFILE echo "preforkchildren = " $preforkchildren >> $CONFIGFILE echo "preservecase = " $preservecase >> $CONFIGFILE echo "proxyexchange = " $proxyexchange >> $CONFIGFILE echo "proxyip = " $proxyip >> $CONFIGFILE echo "proxyport = " $proxyport >> $CONFIGFILE echo "proxytimeout = " $proxytimeout >> $CONFIGFILE echo "recheckreplacedurls = " $recheckreplacedurls >> $CONFIGFILE echo "reverseaddresslookups = " $reverseaddresslookups >> $CONFIGFILE echo "reverseclientiplookups = " $reverseclientiplookups >> $CONFIGFILE echo "scancleancache = " $scancleancache >> $CONFIGFILE echo "showweightedfound = " $showweightedfound >> $CONFIGFILE echo "softrestart = " $softrestart >> $CONFIGFILE echo "trickledelay = " $trickledelay >> $CONFIGFILE echo "urlcacheage = " $urlcacheage >> $CONFIGFILE echo "urlcachenumber = " $urlcachenumber >> $CONFIGFILE echo "urlipcfilename = " $urlipcfilename >> $CONFIGFILE echo "usecustombannedflash = " $usecustombannedflash >> $CONFIGFILE echo "usecustombannedimage = " $usecustombannedimage >> $CONFIGFILE echo "usexforwardedfor = " $usexforwardedfor >> $CONFIGFILE echo "weightedphrasemode = " $weightedphrasemode >> $CONFIGFILE procd_open_instance procd_set_param command $PROG -c $CONFIGFILE procd_set_param file $CONFIGFILE procd_close_instance } stop_service() { PID=`cat /tmp/e2guardian/e2guardian.pid` kill $PID rm -f /tmp/e2guardian/e2guardian.pid } service_triggers() { procd_add_reload_trigger "e2guardian" procd_add_validation validate_e2guardian_section }