Revision: 6241 http://ipcop.svn.sourceforge.net/ipcop/?rev=6241&view=rev Author: dotzball Date: 2012-01-19 08:19:18 +0000 (Thu, 19 Jan 2012) Log Message: ----------- Remove Cron code stuff. The blacklist update can now be called by scheduler or when red interface connects (like the ipcop update list). May needs some more tweaking.
The instant blacklist update by webui now fully moves the update process in background, no more timeout while waiting the update to finish. It is no longer possible to upload a custom redirect background image. If user wants to use an own image he can can manually copy a file named custom-redirect-background.png to /home/httpd/html/images. The (new) lang text is currently not in the lang files, will commit this later. Modified Paths: -------------- ipcop/trunk/html/cgi-bin/urlfilter.cgi ipcop/trunk/langs/ipcop.new.en.pl ipcop/trunk/src/libs/scheduler-lib.pl ipcop/trunk/src/rc.d/rc.updatered ipcop/trunk/src/scripts/blacklistupdate.pl ipcop/trunk/src/scripts/scheduler.pl ipcop/trunk/updates/2.0.3/ROOTFILES.i486-2.0.3 Modified: ipcop/trunk/html/cgi-bin/urlfilter.cgi =================================================================== --- ipcop/trunk/html/cgi-bin/urlfilter.cgi 2012-01-19 08:17:24 UTC (rev 6240) +++ ipcop/trunk/html/cgi-bin/urlfilter.cgi 2012-01-19 08:19:18 UTC (rev 6241) @@ -72,9 +72,6 @@ my $sourceurlfile = "/var/ipcop/proxy/blacklistupdate/blacklistupdate.urls"; my $updconffile = "/var/ipcop/proxy/blacklistupdate/blacklistupdate.conf"; my $updflagfile = "/var/ipcop/proxy/blacklists/.blacklistupdate.last"; -#~ my $upd_cron_dly = "/var/ipcop/proxy/blacklistupdate/cron.daily"; -#~ my $upd_cron_wly = "/var/ipcop/proxy/blacklistupdate/cron.weekly"; -#~ my $upd_cron_mly = "/var/ipcop/proxy/blacklistupdate/cron.monthly"; my $errormessage = ''; my $updatemessage = ''; @@ -139,7 +136,7 @@ $filtersettings{'SHOW_URL'} = 'off'; $filtersettings{'SHOW_IP'} = 'off'; $filtersettings{'ENABLE_DNSERROR'} = 'off'; -$filtersettings{'ENABLE_JPEG'} = 'off'; +$filtersettings{'ENABLE_BG_IMAGE'} = 'off'; $filtersettings{'REDIRECT_PAGE'} = ''; $filtersettings{'MSG_TEXT_1'} = ''; $filtersettings{'MSG_TEXT_2'} = ''; @@ -154,6 +151,7 @@ $filtersettings{'ENABLE_USERNAME_LOG'} = 'off'; $filtersettings{'ENABLE_CATEGORY_LOG'} = 'off'; $filtersettings{'ENABLE_AUTOUPDATE'} = 'off'; +$filtersettings{'CHECKUPDATES'} = 'off'; $filtersettings{'ACTION'} = ''; $filtersettings{'VALID'} = ''; @@ -289,7 +287,7 @@ &writeconfigfile; $updatemessage = $Lang::tr{'urlfilter upload success'}; - system("/usr/local/bin/blacklistupdate.pl --perm &"); + `/usr/local/bin/blacklistupdate.pl --perm < /dev/null > /dev/null &`; system( "logger -t installpackage[urlfilter] \"URL filter blacklist - Blacklist update from local source completed\"" ); @@ -999,7 +997,7 @@ else { my %updateConf = (); $updateConf{'ENABLE_AUTOUPDATE'} = $filtersettings{'ENABLE_AUTOUPDATE'}; - $updateConf{'UPDATE_SCHEDULE'} = $filtersettings{'UPDATE_SCHEDULE'}; + $updateConf{'CHECKUPDATES'} = $filtersettings{'CHECKUPDATES'}; $updateConf{'UPDATE_SOURCE'} = $filtersettings{'UPDATE_SOURCE'}; $updateConf{'CUSTOM_UPDATE_URL'} = $filtersettings{'CUSTOM_UPDATE_URL'}; @@ -1012,7 +1010,8 @@ $errormessage = $Lang::tr{'urlfilter custom url required'}; } else { - system("/usr/local/bin/blacklistupdate.pl --force &"); + $updatemessage = $Lang::tr{'urlfilter upload information'}; + `/usr/local/bin/blacklistupdate.pl --force < /dev/null > /dev/null &`; } } @@ -1062,9 +1061,9 @@ $checked{'ENABLE_DNSERROR'}{'off'} = ''; $checked{'ENABLE_DNSERROR'}{'on'} = ''; $checked{'ENABLE_DNSERROR'}{$filtersettings{'ENABLE_DNSERROR'}} = "checked='checked'"; -$checked{'ENABLE_JPEG'}{'off'} = ''; -$checked{'ENABLE_JPEG'}{'on'} = ''; -$checked{'ENABLE_JPEG'}{$filtersettings{'ENABLE_JPEG'}} = "checked='checked'"; +$checked{'ENABLE_BG_IMAGE'}{'off'} = ''; +$checked{'ENABLE_BG_IMAGE'}{'on'} = ''; +$checked{'ENABLE_BG_IMAGE'}{$filtersettings{'ENABLE_BG_IMAGE'}} = "checked='checked'"; $checked{'ENABLE_EXPR_LISTS'}{'off'} = ''; $checked{'ENABLE_EXPR_LISTS'}{'on'} = ''; $checked{'ENABLE_EXPR_LISTS'}{$filtersettings{'ENABLE_EXPR_LISTS'}} = "checked='checked'"; @@ -1174,14 +1173,14 @@ } if ($updatemessage) { - &Header::openbox('100%', 'left', "$Lang::tr{'urlfilter update results'}:"); + &Header::openbox('100%', 'left', "$Lang::tr{'urlfilter update results'}:", 'warning'); print "<class name='base'>$updatemessage\n"; print " </class>\n"; &Header::closebox(); } if ($restoremessage) { - &Header::openbox('100%', 'left', "$Lang::tr{'urlfilter restore results'}:"); + &Header::openbox('100%', 'left', "$Lang::tr{'urlfilter restore results'}:", 'warning'); print "<class name='base'>$restoremessage\n"; print " </class>\n"; &Header::closebox(); @@ -1477,23 +1476,12 @@ <td><input type='text' name='MSG_TEXT_3' value='$filtersettings{'MSG_TEXT_3'}' size='40' /></td> </tr> <tr> - <td class='base'>$Lang::tr{'urlfilter enable jpeg'}:</td> - <td><input type='checkbox' name='ENABLE_JPEG' $checked{'ENABLE_JPEG'}{'on'} /></td> + <td class='base'>$Lang::tr{'urlfilter enable background image'}:</td> + <td><input type='checkbox' name='ENABLE_BG_IMAGE' $checked{'ENABLE_BG_IMAGE'}{'on'} /></td> <td> </td> <td> </td> </tr> </table> -<table width='100%'> -<tr> - <td class='base'><b>$Lang::tr{'urlfilter background image'}</b></td> -</tr> -<tr> - <td><br>$Lang::tr{'urlfilter background text'}:</td> -</tr> -<tr> - <td><input type='file' name='BACKGROUND' size='40' /> <input type='submit' name='ACTION' value='$Lang::tr{'urlfilter upload background'}' /></td> -</tr> -</table> <hr size='1'> <table width='100%'> <tr> @@ -1581,7 +1569,8 @@ " <b>[</b> <small><i>$Lang::tr{'urlfilter blacklist age 1'} <b>$blacklistage</b> $Lang::tr{'urlfilter blacklist age 2'}</i></small> <b>]</b>"; } - $updatesettings{'UPDATE_SCHEDULE'} = 'monthly'; + $updatesettings{'ENABLE_AUTOUPDATE'} = 'off'; + $updatesettings{'CHECKUPDATES'} = 'off'; $updatesettings{'CUSTOM_UPDATE_URL'} = ''; if (-e "$updconffile") { &General::readhash("$updconffile", \%updatesettings); } @@ -1590,10 +1579,10 @@ $checked{'ENABLE_AUTOUPDATE'}{'on'} = ''; $checked{'ENABLE_AUTOUPDATE'}{$updatesettings{'ENABLE_AUTOUPDATE'}} = "checked='checked'"; - $selected{'UPDATE_SCHEDULE'}{$updatesettings{'UPDATE_SCHEDULE'}} = "selected='selected'"; + $checked{'CHECKUPDATES'}{'off'} = ''; + $checked{'CHECKUPDATES'}{'on'} = ''; + $checked{'CHECKUPDATES'}{$updatesettings{'CHECKUPDATES'}} = "checked='checked'"; - $selected{'UPDATE_SOURCE'}{$updatesettings{'UPDATE_SOURCE'}} = "selected='selected'"; - print <<END </td> </tr> @@ -1602,13 +1591,9 @@ <td width='75%' class='base'><input type='checkbox' name='ENABLE_AUTOUPDATE' $checked{'ENABLE_AUTOUPDATE'}{'on'} /></td> </tr> <tr> - <td class='base'>$Lang::tr{'urlfilter automatic update schedule'}:</td> + <td class='base'>$Lang::tr{'check for updates after connect'}:</td> <td class='base'> - <select name='UPDATE_SCHEDULE'> - <option value='daily' $selected{'UPDATE_SCHEDULE'}{'daily'}>$Lang::tr{'daily'}</option> - <option value='weekly' $selected{'UPDATE_SCHEDULE'}{'weekly'}>$Lang::tr{'weekly'}</option> - <option value='monthly' $selected{'UPDATE_SCHEDULE'}{'monthly'}>$Lang::tr{'monthly'}</option> - </select> + <input type='checkbox' name='CHECKUPDATES' $checked{'CHECKUPDATES'}{'on'} /> </td> </tr> <tr> @@ -1622,7 +1607,11 @@ chomp; $source_name = substr($_, 0, rindex($_, ",")); $source_url = substr($_, index($_, ",") + 1); - print "\t<option value='$source_url' $selected{'UPDATE_SOURCE'}{$source_url}>$source_name</option>\n"; + my $selected = ''; + if($updatesettings{'UPDATE_SOURCE'} eq $source_url) { + $selected = "selected='selected'"; + } + print "\t<option value='$source_url' $selected>$source_name</option>\n"; } print <<END @@ -2955,29 +2944,30 @@ } close(FILE); - if ($filtersettings{'ENABLE_USERNAME_LOG'} eq 'on') { $ident = ""; } + if ($filtersettings{'ENABLE_USERNAME_LOG'} eq 'on') { + $ident = ""; + } - if ($filtersettings{'REDIRECT_PAGE'} eq '') { - if ( ($filtersettings{'SHOW_CATEGORY'} eq 'on') - || ($filtersettings{'SHOW_URL'} eq 'on') - || ($filtersettings{'SHOW_IP'} eq 'on')) - { - if ($filtersettings{'SHOW_CATEGORY'} eq 'on') { $redirect .= "&category=%t"; } - if ($filtersettings{'SHOW_URL'} eq 'on') { $redirect .= "&url=%u"; } - if ($filtersettings{'SHOW_IP'} eq 'on') { $redirect .= "&ip=%a"; } - $redirect =~ s/^&/?/; - $redirect = "http:\/\/$netsettings{'GREEN_1_ADDRESS'}:$http_port\/cgi-bin\/redirect.cgi" . $redirect; + if ($filtersettings{'ENABLE_DNSERROR'} eq 'on') { + $redirect = "302:http://0.0.0.0"; + } + elsif ($filtersettings{'REDIRECT_PAGE'} eq '') { + if ($filtersettings{'SHOW_CATEGORY'} eq 'on') { + $redirect .= '&category=%t'; } - else { - $redirect = "http:\/\/$netsettings{'GREEN_1_ADDRESS'}:$http_port\/redirect.cgi"; + if ($filtersettings{'SHOW_URL'} eq 'on') { + $redirect .= '&url=%u'; } + if ($filtersettings{'SHOW_IP'} eq 'on') { + $redirect .= '&ip=%a'; + } + $redirect =~ s/^&/?/; + $redirect = "http:\/\/$netsettings{'GREEN_1_ADDRESS'}:$http_port\/cgi-bin\/redirect.cgi" . $redirect; } else { $redirect = $filtersettings{'REDIRECT_PAGE'}; } - if ($filtersettings{'ENABLE_DNSERROR'} eq 'on') { $redirect = "302:http://0.0.0.0"; } - undef $defaultrule; if ($filtersettings{'ENABLE_CUSTOM_WHITELIST'} eq 'on') { Modified: ipcop/trunk/langs/ipcop.new.en.pl =================================================================== --- ipcop/trunk/langs/ipcop.new.en.pl 2012-01-19 08:17:24 UTC (rev 6240) +++ ipcop/trunk/langs/ipcop.new.en.pl 2012-01-19 08:19:18 UTC (rev 6241) @@ -176,8 +176,6 @@ 'urlfilter assigned users' => 'Assigned users', 'urlfilter automatic blacklist update' => 'Automatic blacklist update', 'urlfilter automatic update schedule' => 'Automatic update schedule', -'urlfilter background text' => 'To use a custom background image for the block page upload the .jpg file below', -'urlfilter background image' => 'Background image', 'urlfilter backup error' => 'Unable to create backup file', 'urlfilter backup settings' => 'Backup URL filter settings', 'urlfilter backup' => 'Create backup file', @@ -224,12 +222,12 @@ 'urlfilter empty ads' => 'Block \"ads\" with empty window', 'urlfilter empty repository' => 'Local file repository is empty', 'urlfilter enable automatic blacklist update' => 'Enable automatic update', +'urlfilter enable background image' => 'Enable background image', 'urlfilter enable custom blacklist' => 'Enable custom blacklist', 'urlfilter enable custom expression list' => 'Enable custom expression list', 'urlfilter enable custom whitelist' => 'Enable custom whitelist', 'urlfilter enable expression lists' => 'Enable expression lists', 'urlfilter enable full backup' => 'Include complete blacklist', -'urlfilter enable jpeg' => 'Enable background image', 'urlfilter enable rewrite rules' => 'Enable local file redirection', 'urlfilter export blacklist' => 'Export blacklist', 'urlfilter export error' => 'Unable to create export file', Modified: ipcop/trunk/src/libs/scheduler-lib.pl =================================================================== --- ipcop/trunk/src/libs/scheduler-lib.pl 2012-01-19 08:17:24 UTC (rev 6240) +++ ipcop/trunk/src/libs/scheduler-lib.pl 2012-01-19 08:19:18 UTC (rev 6241) @@ -31,14 +31,14 @@ require '/usr/lib/ipcop/lang.pl'; -@SCHEDULER::actions = ( +@SCHEDULER::actions = ( 'reconnect', 'dial', 'hangup', 'reboot', 'shutdown', 'start ipsec', 'stop ipsec', 'start openvpn server', 'stop openvpn server', - 'dyndns force', 'check for updates' + 'dyndns force', 'check for updates', 'urlfilter blacklist update' ); # we also want these actions pulled in for translations # $Lang::tr{'reconnect'} $Lang::tr{'dial'} $Lang::tr{'hangup'} -# $Lang::tr{'reboot'} $Lang::tr{'shutdown'} +# $Lang::tr{'reboot'} $Lang::tr{'shutdown'} # $Lang::tr{'start ipsec'} $Lang::tr{'stop ipsec'} $Lang::tr{'start openvpn server'} $Lang::tr{'stop openvpn server'} # $Lang::tr{'dyndns force'} $Lang::tr{'check for updates'} @@ -91,7 +91,7 @@ } } $SCHEDULER::count++; - push @SCHEDULER::list, { ACTIVE => $tmp[0], ACTION => $tmp[1], + push @SCHEDULER::list, { ACTIVE => $tmp[0], ACTION => $tmp[1], TIME => $tmp[2], DAYSTYPE => $tmp[3], DAYS => $tmp[4], WEEKDAYS => $tmp[5], DAYS_FORMATTED => $formatted, OPTIONS => $tmp[6], COMMENT => $tmp[7]}; } Modified: ipcop/trunk/src/rc.d/rc.updatered =================================================================== --- ipcop/trunk/src/rc.d/rc.updatered 2012-01-19 08:17:24 UTC (rev 6240) +++ ipcop/trunk/src/rc.d/rc.updatered 2012-01-19 08:19:18 UTC (rev 6241) @@ -82,7 +82,7 @@ system("echo $dhclient{'DHCLIENT_IPADDR'} > /var/ipcop/red/local-ipaddress"); system("echo $dhclient{'DHCLIENT_GATEWAY'} > /var/ipcop/red/remote-ipaddress"); } -} +} else { # if [ "$PROTOCOL" = "RFC1483" -a "$METHOD" = "DHCP" ]; then # unset DNS1 DNS2 @@ -147,6 +147,7 @@ system('/usr/local/bin/restartsquid --test &'); system("/bin/sleep $ipsecsettings{'VPN_DELAYED_START'} && /usr/local/bin/ipsecctrl --start &"); system('/usr/local/bin/updatelists.pl --red &'); + `/usr/local/bin/blacklistupdate.pl --red < /dev/null > /dev/null &`; system('/usr/local/bin/restartshaping'); system('/usr/local/bin/accountingctrl'); } Modified: ipcop/trunk/src/scripts/blacklistupdate.pl =================================================================== --- ipcop/trunk/src/scripts/blacklistupdate.pl 2012-01-19 08:17:24 UTC (rev 6240) +++ ipcop/trunk/src/scripts/blacklistupdate.pl 2012-01-19 08:19:18 UTC (rev 6241) @@ -42,6 +42,7 @@ my %updatesettings; $updatesettings{'ENABLE_AUTOUPDATE'} = 'off'; +$updatesettings{'CHECKUPDATES'} = 'off'; my @categories; my $blacklist; @@ -59,18 +60,16 @@ print "arg: $argument\n" if ($debugLevel > 0); - if ($argument eq '--cron' && ($#ARGV >= 0)) { - # handle cron/scheduled updates - my $type = shift; - - # TODO: not implemented yet - -#~ $doUpdate = 1; - } - elsif ($argument eq '--force') { + if ($argument eq '--force') { # force/instant update $doUpdate = 1; } + elsif ($argument eq '--red') { + # check for update after red connect + if($updatesettings{'CHECKUPDATES'} eq 'on') { + $doUpdate = 1; + } + } elsif ($argument eq '--perm') { # set permissions on prebuild blacklist $doSetPermissions = 1; Modified: ipcop/trunk/src/scripts/scheduler.pl =================================================================== --- ipcop/trunk/src/scripts/scheduler.pl 2012-01-19 08:17:24 UTC (rev 6240) +++ ipcop/trunk/src/scripts/scheduler.pl 2012-01-19 08:19:18 UTC (rev 6241) @@ -32,7 +32,7 @@ if ( ($ARGV[0] eq '--cron') || ($ARGV[0] eq 'cron')) { &fcron(); -} +} elsif (($ARGV[0] eq '--reconnect') || ($ARGV[0] eq 'reconnect')) { &reconnect(); } @@ -104,7 +104,7 @@ return; } - # now wait for red/active triggerfile and ppp daemon to disappear + # now wait for red/active triggerfile and ppp daemon to disappear sleep 1; while (-e '/var/ipcop/red/active' || -d "/proc/$ppppid") { sleep 1; @@ -138,9 +138,17 @@ if ($red_active == 1) { &dial(); - } + } } + +sub blacklistupdate +{ + &General::log("Scheduler Blacklistupdate"); + + system("/usr/local/bin/blacklistupdate.pl --force"); +} + sub dyndns { &General::log("Scheduler dynamic DNS"); @@ -197,14 +205,14 @@ my $dayend = substr($temp[1], 1); next if (($day < $daystart) || ($day > $dayend)); - } + } else { next if (index($SCHEDULER::list[$id]{'WEEKDAYS'}, $General::weekDays[$weekday]) == -1); } if ($SCHEDULER::list[$id]{'ACTION'} eq 'reconnect') { &reconnect() - } + } elsif ($SCHEDULER::list[$id]{'ACTION'} eq 'dial') { &dial(); } @@ -238,5 +246,8 @@ elsif ($SCHEDULER::list[$id]{'ACTION'} eq 'check for updates') { &update(); } + elsif ($SCHEDULER::list[$id]{'ACTION'} eq 'urlfilter blacklist update') { + &blacklistupdate(); + } } } Modified: ipcop/trunk/updates/2.0.3/ROOTFILES.i486-2.0.3 =================================================================== --- ipcop/trunk/updates/2.0.3/ROOTFILES.i486-2.0.3 2012-01-19 08:17:24 UTC (rev 6240) +++ ipcop/trunk/updates/2.0.3/ROOTFILES.i486-2.0.3 2012-01-19 08:19:18 UTC (rev 6241) @@ -1,6 +1,7 @@ ## please place IPCop files first, then packages sorted by alphabetical order /etc/rc.d/rc.isdn /etc/rc.d/rc.red +/etc/rc.d/rc.updatered /home/httpd/cgi-bin/fwrules.cgi /home/httpd/cgi-bin/logsystem.cgi /home/httpd/cgi-bin/openvpn.cgi @@ -9,12 +10,15 @@ /home/httpd/cgi-bin/trafficadm.cgi /home/httpd/cgi-bin/updates.cgi /home/httpd/cgi-bin/urlfilter.cgi +/home/httpd/html/images/redirect-background.png /home/httpd/vhost81/cgi-bin/redirect.cgi /usr/lib/ipcop/general-functions.pl /usr/lib/ipcop/header.pl /usr/lib/ipcop/library.sh +/usr/lib/ipcop/scheduler-lib.pl /usr/local/bin/blacklistupdate.pl /usr/local/bin/makesquidconf +/usr/local/bin/scheduler.pl /usr/local/bin/upgrade.sh /usr/share/locale/el_GR/LC_MESSAGES/ipcop.mo /var/ipcop/proxy/blacklistupdate/blacklistupdate.urls This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Ipcop-svn mailing list Ipcop-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ipcop-svn