123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- #!/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
- }
|