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 "&nbsp;</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 "&nbsp;</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>&nbsp;</td>
     <td>&nbsp;</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' /> &nbsp; <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 @@
 "&nbsp; <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

Reply via email to