Revision: 6305
          http://ipcop.svn.sourceforge.net/ipcop/?rev=6305&view=rev
Author:   dotzball
Date:     2012-02-02 16:53:57 +0000 (Thu, 02 Feb 2012)
Log Message:
-----------
Fix Perl warnings.

More to come after 2.0.3 release.

Modified Paths:
--------------
    ipcop/trunk/html/cgi-bin/urlfilter.cgi

Modified: ipcop/trunk/html/cgi-bin/urlfilter.cgi
===================================================================
--- ipcop/trunk/html/cgi-bin/urlfilter.cgi      2012-02-02 07:35:26 UTC (rev 
6304)
+++ ipcop/trunk/html/cgi-bin/urlfilter.cgi      2012-02-02 16:53:57 UTC (rev 
6305)
@@ -84,7 +84,6 @@
 my @repositorylist     = ();
 my @repositoryfiles    = ();
 my @categories         = ();
-my @selectedcategories = ();
 my @filtergroups       = ();
 my @tclist             = ();
 my @uqlist             = ();
@@ -151,12 +150,23 @@
 $filtersettings{'ENABLE_USERNAME_LOG'}       = 'off';
 $filtersettings{'ENABLE_CATEGORY_LOG'}       = 'off';
 $filtersettings{'ENABLE_AUTOUPDATE'}         = 'off';
-$filtersettings{'CHECKUPDATES'}         = 'off';
+$filtersettings{'CHECKUPDATES'}              = 'off';
+$filtersettings{'ENABLE_FULLBACKUP'}         = 'off';
 
+&resetTcSettings();
+
 $filtersettings{'ACTION'} = '';
 $filtersettings{'VALID'}  = '';
 $filtersettings{'MODE'}   = '';
 
+&resetUqSettings();
+
+$besettings{'BE_NAME'}      = '';
+$besettings{'BE_BLACKLIST'} = '';
+$besettings{'NORESTART'}    = 'off';
+$besettings{'ACTION'}       = '';
+$besettings{'MODE'}         = '';
+
 &General::getcgihash(\%filtersettings);
 &General::getcgihash(\%tcsettings);
 &General::getcgihash(\%uqsettings);
@@ -384,7 +394,9 @@
     }
 }
 
-if ($tcsettings{'ACTION'} eq $Lang::tr{'urlfilter set time constraints'}) { 
$tcsettings{'TCMODE'} = 'on' }
+if ($tcsettings{'ACTION'} eq $Lang::tr{'urlfilter set time constraints'}) {
+    $tcsettings{'TCMODE'} = 'on'
+}
 
 if (($tcsettings{'MODE'} eq 'TIMECONSTRAINT') && ($tcsettings{'ACTION'} eq 
$Lang::tr{'add'})) {
     $tcsettings{'TCMODE'} = 'on';
@@ -431,9 +443,15 @@
         }
         $tcsettings{'SRC'} =~ s/\s+$//;
 
-        if ($tcsettings{'DST'} =~ /^any/) { $tcsettings{'DST'} = 'any'; }
-        if ($tcsettings{'ENABLERULE'} eq 'on') { $tcsettings{'ACTIVE'} = 
$tcsettings{'ENABLERULE'}; }
-        else                                     { $tcsettings{'ACTIVE'} = 
'off' }
+        if ($tcsettings{'DST'} =~ /^any/) {
+            $tcsettings{'DST'} = 'any';
+        }
+        if (defined($tcsettings{'ENABLERULE'}) && $tcsettings{'ENABLERULE'} eq 
'on') {
+            $tcsettings{'ACTIVE'} = $tcsettings{'ENABLERULE'};
+        }
+        else {
+            $tcsettings{'ACTIVE'} = 'off'
+        }
 
         $tcsettings{'ENABLERULE'} = 'on';
         if ($tcsettings{'EDITING'} eq 'no') {
@@ -452,14 +470,19 @@
                     print FILE
 
"$tcsettings{'DEFINITION'},$tcsettings{'MON'},$tcsettings{'TUE'},$tcsettings{'WED'},$tcsettings{'THU'},$tcsettings{'FRI'},$tcsettings{'SAT'},$tcsettings{'SUN'},$tcsettings{'FROM_HOUR'},$tcsettings{'FROM_MINUTE'},$tcsettings{'TO_HOUR'},$tcsettings{'TO_MINUTE'},$tcsettings{'SRC'},$tcsettings{'DST'},$tcsettings{'ACCESS'},$tcsettings{'ACTIVE'},$tcsettings{'COMMENT'}\n";
                 }
-                else { print FILE "$line"; }
+                else {
+                    print FILE "$line";
+                }
             }
         }
         close(FILE);
+
         undef %tcsettings;
+        &resetTcSettings();
+
         $tcsettings{'CHANGED'} = 'yes';
         $tcsettings{'TCMODE'}  = 'on';
-        $changed               = 'yes';
+        $changed                = 'yes';
     }
     else {
         if ($tcsettings{'EDITING'} ne 'no') {
@@ -479,6 +502,9 @@
         if ($tcsettings{'ID'} eq $id) {
             chomp($line);
             @temp = split(/\,/, $line);
+
+            $temp[16] = '' unless(defined($temp[16]));
+
             $tcsettings{'DEFINITION'}  = $temp[0];
             $tcsettings{'MON'}         = $temp[1];
             $tcsettings{'TUE'}         = $temp[2];
@@ -515,14 +541,16 @@
 }
 
 if (($tcsettings{'MODE'} eq 'TIMECONSTRAINT') && ($tcsettings{'ACTION'} eq 
$Lang::tr{'urlfilter restart'})) {
-    if (!($proxysettings{'ENABLE_FILTER'} eq 'on')) {
+    if ($proxysettings{'ENABLE_REDIRECTOR'} ne 'on') {
         $errormessage = $Lang::tr{'redirectors are disabled'};
     }
        if ((!($proxysettings{'ENABLED_GREEN_1'} eq 'on')) && 
(!($proxysettings{'ENABLED_BLUE_1'} eq 'on')) && 
(!($proxysettings{'ENABLED_OVPN'} eq 'on'))) {
         $errormessage = $Lang::tr{'urlfilter web proxy service required'};
     }
 
-    if (!$errormessage) { system('/usr/local/bin/restartsquid'); }
+    if (!$errormessage) {
+        system('/usr/local/bin/restartsquid');
+    }
     $tcsettings{'TCMODE'} = 'on';
 }
 
@@ -554,6 +582,9 @@
         if ($tcsettings{'ID'} eq $id) {
             chomp($line);
             @temp = split(/\,/, $line);
+
+            $temp[16] = '' unless(defined($temp[16]));
+
             $tcsettings{'DEFINITION'}  = $temp[0];
             $tcsettings{'MON'}         = $temp[1];
             $tcsettings{'TUE'}         = $temp[2];
@@ -581,7 +612,6 @@
     && (!($tcsettings{'ACTION'} eq $Lang::tr{'edit'})))
 {
     $tcsettings{'ENABLERULE'} = 'on';
-    $tcsettings{'TO_HOUR'}    = '24';
 }
 
 if ($uqsettings{'ACTION'} eq $Lang::tr{'urlfilter set user quota'}) { 
$uqsettings{'UQMODE'} = 'on' }
@@ -640,7 +670,10 @@
             }
         }
         close(FILE);
+
         undef %uqsettings;
+        &resetUqSettings();
+
         $uqsettings{'CHANGED'} = 'yes';
         $uqsettings{'MODE'}    = 'USERQUOTA';
         $uqsettings{'UQMODE'}  = 'on';
@@ -709,7 +742,7 @@
 }
 
 if (($uqsettings{'MODE'} eq 'USERQUOTA') && ($uqsettings{'ACTION'} eq 
$Lang::tr{'urlfilter restart'})) {
-    if (!($proxysettings{'ENABLE_FILTER'} eq 'on')) {
+    if (!($proxysettings{'ENABLE_REDIRECTOR'} eq 'on')) {
         $errormessage = $Lang::tr{'redirectors are disabled'};
     }
        if ((!($proxysettings{'ENABLED_GREEN_1'} eq 'on')) && 
(!($proxysettings{'ENABLED_BLUE_1'} eq 'on')) && 
(!($proxysettings{'ENABLED_OVPN'} eq 'on'))) {
@@ -724,23 +757,25 @@
 
 if ($besettings{'MODE'} eq 'BLACKLIST_EDITOR') {
     @temp = split(/\n/, $besettings{'BE_DOMAINS'});
-    undef $besettings{'BE_DOMAINS'};
+    $besettings{'BE_DOMAINS'} = '';
     foreach (@temp) {
         s/^\s+//g;
         s/\s+$//g;
         if ($_) { $besettings{'BE_DOMAINS'} .= $_ . "\n"; }
     }
     chomp($besettings{'BE_DOMAINS'});
+
     @temp = split(/\n/, $besettings{'BE_URLS'});
-    undef $besettings{'BE_URLS'};
+    $besettings{'BE_URLS'} = '';
     foreach (@temp) {
         s/^\s+//g;
         s/\s+$//g;
         if ($_) { $besettings{'BE_URLS'} .= $_ . "\n"; }
     }
     chomp($besettings{'BE_URLS'});
+
     @temp = split(/\n/, $besettings{'BE_EXPRESSIONS'});
-    undef $besettings{'BE_EXPRESSIONS'};
+    $besettings{'BE_EXPRESSIONS'} = '';
     foreach (@temp) {
         s/^\s+//g;
         s/\s+$//g;
@@ -964,8 +999,10 @@
         print FILE "}\n";
         close FILE;
 
-        system("rm -f $dbdir/$besettings{'BE_NAME'}/*.db");
-        system("/usr/sbin/squidGuard -c $editdir/install.conf -C all");
+        if(-e "$dbdir/$besettings{'BE_NAME'}") {
+            system("rm -f $dbdir/$besettings{'BE_NAME'}/*.db");
+        }
+        system("/usr/bin/squidGuard -c $editdir/install.conf -C all");
         system("chmod a+w $dbdir/$besettings{'BE_NAME'}/*.db");
 
         &readblockcategories;
@@ -1084,28 +1121,19 @@
 $checked{'ENABLE_CATEGORY_LOG'}{'on'}                                          
     = '';
 $checked{'ENABLE_CATEGORY_LOG'}{$filtersettings{'ENABLE_CATEGORY_LOG'}}        
     = "checked='checked'";
 
-foreach $category (@filtergroups) {
-    $checked{$category}{'off'}                      = '';
-    $checked{$category}{'on'}                       = '';
-    $checked{$category}{$filtersettings{$category}} = "checked='checked'";
-}
 
-$selected{'DEFINITION'}{$tcsettings{'DEFINITION'}}   = "selected='selected'";
-$selected{'FROM_HOUR'}{$tcsettings{'FROM_HOUR'}}     = "selected='selected'";
-$selected{'FROM_MINUTE'}{$tcsettings{'FROM_MINUTE'}} = "selected='selected'";
-$selected{'TO_HOUR'}{$tcsettings{'TO_HOUR'}}         = "selected='selected'";
-$selected{'TO_MINUTE'}{$tcsettings{'TO_MINUTE'}}     = "selected='selected'";
-
-@selectedcategories = split(/\|/, $tcsettings{'DST'});
-foreach (@selectedcategories) {
-    $selected{'DST'}{$_} = "selected='selected'";
-}
-
+$selected{'ACCESS'}{'block'} = '';
+$selected{'ACCESS'}{'allow'} = '';
 $selected{'ACCESS'}{$tcsettings{'ACCESS'}} = "selected='selected'";
 
 $checked{'ENABLERULE'}{'off'}                     = '';
 $checked{'ENABLERULE'}{'on'}                      = '';
-$checked{'ENABLERULE'}{$tcsettings{'ENABLERULE'}} = "checked='checked'";
+if(defined($tcsettings{'ENABLERULE'})) {
+    $checked{'ENABLERULE'}{$tcsettings{'ENABLERULE'}} = "checked='checked'";
+}
+else {
+    $checked{'ENABLERULE'}{'off'} = "checked='checked'";
+}
 $checked{'MON'}{'off'}                            = '';
 $checked{'MON'}{'on'}                             = '';
 $checked{'MON'}{$tcsettings{'MON'}}               = "checked='checked'";
@@ -1128,15 +1156,11 @@
 $checked{'SUN'}{'on'}                             = '';
 $checked{'SUN'}{$tcsettings{'SUN'}}               = "checked='checked'";
 
-$selected{'SPORADIC'}{$uqsettings{'SPORADIC'}} = "selected='selected'";
-$selected{'RENEWAL'}{$uqsettings{'RENEWAL'}}   = "selected='selected'";
 
 $checked{'ENABLEQUOTA'}{'off'}                      = '';
 $checked{'ENABLEQUOTA'}{'on'}                       = '';
 $checked{'ENABLEQUOTA'}{$uqsettings{'ENABLEQUOTA'}} = "checked='checked'";
 
-$selected{'BE_BLACKLIST'}{$besettings{'BE_BLACKLIST'}} = "selected='selected'";
-
 &Header::showhttpheaders();
 
 &Header::openpage($Lang::tr{'urlfilter configuration'}, 1, '');
@@ -1158,8 +1182,12 @@
     }
     print "</class>\n";
     print "<p><input type='submit' name='ACTION' value='$Lang::tr{'urlfilter 
restart'}' />";
-    if ($tcsettings{'MODE'} eq 'TIMECONSTRAINT') { print "<input type='hidden' 
name='MODE' value='TIMECONSTRAINT' />"; }
-    if ($uqsettings{'MODE'} eq 'USERQUOTA')      { print "<input type='hidden' 
name='MODE' value='USERQUOTA' />"; }
+    if ($tcsettings{'MODE'} eq 'TIMECONSTRAINT') {
+        print "<input type='hidden' name='MODE' value='TIMECONSTRAINT' />";
+    }
+    if ($uqsettings{'MODE'} eq 'USERQUOTA') {
+        print "<input type='hidden' name='MODE' value='USERQUOTA' />";
+    }
     &Header::closebox();
     print "</form>\n";
 }
@@ -1226,13 +1254,22 @@
 
         for ($n = 0; $n <= @categories; $n = $n + $i) {
             for ($i = 0; $i <= 3; $i++) {
-                if ($i eq 0) { print "<tr>\n"; }
+                if ($i eq 0) {
+                    print "<tr>\n";
+                }
                 if (($n + $i) < @categories) {
-                    print "<td width='15%'>$categories[$n+$i]:<\/td>\n";
-                    print
-"<td width='10%'><input type='checkbox' name=$filtergroups[$n+$i] 
$checked{$filtergroups[$n+$i]}{'on'} /></td>\n";
+                    my $name = $categories[$n+$i];
+                    my $category = $filtergroups[$n+$i];
+                    my $checked = '';
+                    if(defined($filtersettings{$category}) && 
$filtersettings{$category} eq 'on') {
+                        $checked = "checked='checked'";
+                    }
+                    print "<td width='15%'>$name:<\/td>\n";
+                    print "<td width='10%'><input type='checkbox' 
name='$category' $checked /></td>\n";
                 }
-                if ($i eq 3) { print "<\/tr>\n"; }
+                if ($i eq 3) {
+                    print "<\/tr>\n";
+                }
             }
         }
 
@@ -1255,7 +1292,9 @@
 END
             ;
 
-        print $filtersettings{'CUSTOM_BLACK_DOMAINS'};
+        if(defined($filtersettings{'CUSTOM_BLACK_DOMAINS'})) {
+            print $filtersettings{'CUSTOM_BLACK_DOMAINS'};
+        }
 
         print <<END
 </textarea></td>
@@ -1263,7 +1302,9 @@
 END
             ;
 
-        print $filtersettings{'CUSTOM_BLACK_URLS'};
+        if(defined($filtersettings{'CUSTOM_BLACK_URLS'})) {
+            print $filtersettings{'CUSTOM_BLACK_URLS'};
+        }
 
         print <<END
 </textarea></td>
@@ -1294,7 +1335,9 @@
 END
             ;
 
-        print $filtersettings{'CUSTOM_WHITE_DOMAINS'};
+        if(defined($filtersettings{'CUSTOM_WHITE_DOMAINS'})) {
+            print $filtersettings{'CUSTOM_WHITE_DOMAINS'};
+        }
 
         print <<END
 </textarea></td>
@@ -1302,7 +1345,9 @@
 END
             ;
 
-        print $filtersettings{'CUSTOM_WHITE_URLS'};
+        if(defined($filtersettings{'CUSTOM_WHITE_URLS'})) {
+            print $filtersettings{'CUSTOM_WHITE_URLS'};
+        }
 
         print <<END
 </textarea></td>
@@ -1329,7 +1374,9 @@
 END
             ;
 
-        print $filtersettings{'CUSTOM_EXPRESSIONS'};
+        if(defined($filtersettings{'CUSTOM_EXPRESSIONS'})) {
+            print $filtersettings{'CUSTOM_EXPRESSIONS'};
+        }
 
         print <<END
 </textarea></td>
@@ -1400,9 +1447,13 @@
 
         @clients = split(/ /, $filtersettings{'UNFILTERED_CLIENTS'});
         undef $filtersettings{'UNFILTERED_CLIENTS'};
-        foreach (@clients) { $filtersettings{'UNFILTERED_CLIENTS'} .= "$_\n"; }
+        foreach my $client (@clients) {
+            $filtersettings{'UNFILTERED_CLIENTS'} .= "$client\n";
+        }
 
-        print $filtersettings{'UNFILTERED_CLIENTS'};
+        if(defined($filtersettings{'UNFILTERED_CLIENTS'})) {
+            print $filtersettings{'UNFILTERED_CLIENTS'};
+        }
 
         print <<END
 </textarea></td>
@@ -1418,9 +1469,13 @@
 
         @clients = split(/ /, $filtersettings{'BANNED_CLIENTS'});
         undef $filtersettings{'BANNED_CLIENTS'};
-        foreach (@clients) { $filtersettings{'BANNED_CLIENTS'} .= "$_\n"; }
+        foreach my $client (@clients) {
+            $filtersettings{'BANNED_CLIENTS'} .= "$client\n";
+        }
 
-        print $filtersettings{'BANNED_CLIENTS'};
+        if(defined($filtersettings{'BANNED_CLIENTS'})) {
+            print $filtersettings{'BANNED_CLIENTS'};
+        }
 
         print <<END
 </textarea></td>
@@ -1606,8 +1661,13 @@
             print "\t<option value='$source_url' 
$selected>$source_name</option>\n";
         }
 
+        my $selectedCustom = '';
+        if ($updatesettings{'UPDATE_SOURCE'} eq 'custom') {
+            $selectedCustom = "selected='selected'";
+        }
+
         print <<END
-    <option value='custom' 
$selected{'UPDATE_SOURCE'}{'custom'}>$Lang::tr{'urlfilter custom url'}</option>
+    <option value='custom' $selectedCustom>$Lang::tr{'urlfilter custom 
url'}</option>
     </select>
     </td>
 </tr>
@@ -1647,7 +1707,14 @@
 </table>
 
 <hr size='1'>
+END
+;
 
+        $checked{'ENABLE_FULLBACKUP'}{'off'}                                = 
'';
+        $checked{'ENABLE_FULLBACKUP'}{'on'}                                 = 
'';
+        $checked{'ENABLE_FULLBACKUP'}{$filtersettings{'ENABLE_FULLBACKUP'}} = 
"checked='checked'";
+
+        print <<END
 <table width='100%'>
 <tr>
        <td colspan='4' class='base'><b>$Lang::tr{'urlfilter backup 
settings'}</b></td>
@@ -1812,6 +1879,11 @@
     else {
         &Header::openbox('100%', 'left', $Lang::tr{'urlfilter add new time 
constraint rule'} . ':');
     }
+
+    $selected{'DEFINITION'}{'within'}   = '';
+    $selected{'DEFINITION'}{'outside'}   = '';
+    $selected{'DEFINITION'}{$tcsettings{'DEFINITION'}}   = 
"selected='selected'";
+
     print <<END
 
 <table width='100%'>
@@ -1834,8 +1906,8 @@
 <tr>
        <td class='base'>
        <select name='DEFINITION'>
-       <option value='within' 
$selected{'DEFINITION'}{'within'}>$Lang::tr{'urlfilter constraint 
within'}</option>
-       <option value='outside' 
$selected{'DEFINITION'}{'outside'}>$Lang::tr{'urlfilter constraint 
outside'}</option>
+        <option value='within' 
$selected{'DEFINITION'}{'within'}>$Lang::tr{'urlfilter constraint 
within'}</option>
+        <option value='outside' 
$selected{'DEFINITION'}{'outside'}>$Lang::tr{'urlfilter constraint 
outside'}</option>
        </select>
        </td>
        <td>&nbsp;</td>
@@ -1850,10 +1922,21 @@
        <td class='base'>
        <select name='FROM_HOUR'>
 END
-        ;
+;
+
+
+    $selected{'FROM_HOUR'}{$tcsettings{'FROM_HOUR'}}     = 
"selected='selected'";
+    $selected{'FROM_MINUTE'}{$tcsettings{'FROM_MINUTE'}} = 
"selected='selected'";
+    $selected{'TO_HOUR'}{$tcsettings{'TO_HOUR'}}         = 
"selected='selected'";
+    $selected{'TO_MINUTE'}{$tcsettings{'TO_MINUTE'}}     = 
"selected='selected'";
+
     for ($i = 0; $i <= 24; $i++) {
-        $_ = sprintf("%02s", $i);
-        print "<option $selected{'FROM_HOUR'}{$_}>$_</option>\n";
+        my $hour = sprintf("%02s", $i);
+        my $selected = '';
+        if($hour eq $tcsettings{'FROM_HOUR'}) {
+            $selected = "selected='selected'";
+        }
+        print "<option value='$hour' $selected>$hour</option>\n";
     }
     print <<END
        </select>
@@ -1862,10 +1945,15 @@
        <td class='base'>
        <select name='FROM_MINUTE'>
 END
-        ;
+;
+
     for ($i = 0; $i <= 45; $i += 15) {
-        $_ = sprintf("%02s", $i);
-        print "<option $selected{'FROM_MINUTE'}{$_}>$_</option>\n";
+        my $minute = sprintf("%02s", $i);
+        my $selected = '';
+        if($minute eq $tcsettings{'FROM_MINUTE'}) {
+            $selected = "selected='selected'";
+        }
+        print "<option value='$minute' $selected>$minute</option>\n";
     }
     print <<END
        </select>
@@ -1876,8 +1964,12 @@
 END
         ;
     for ($i = 0; $i <= 24; $i++) {
-        $_ = sprintf("%02s", $i);
-        print "<option $selected{'TO_HOUR'}{$_}>$_</option>\n";
+        my $hour = sprintf("%02s", $i);
+        my $selected = '';
+        if($hour eq $tcsettings{'TO_HOUR'}) {
+            $selected = "selected='selected'";
+        }
+        print "<option value='$hour' $selected>$hour</option>\n";
     }
     print <<END
        </select>
@@ -1888,8 +1980,12 @@
 END
         ;
     for ($i = 0; $i <= 45; $i += 15) {
-        $_ = sprintf("%02s", $i);
-        print "<option $selected{'TO_MINUTE'}{$_}>$_</option>\n";
+        my $minute = sprintf("%02s", $i);
+        my $selected = '';
+        if($minute eq $tcsettings{'TO_MINUTE'}) {
+            $selected = "selected='selected'";
+        }
+        print "<option value='$minute' $selected>$minute</option>\n";
     }
     print <<END
        </select>
@@ -1924,35 +2020,51 @@
     undef $tcsettings{'SRC'};
     foreach (@clients) { $tcsettings{'SRC'} .= "$_\n"; }
 
-    print $tcsettings{'SRC'};
+    if(defined($tcsettings{'SRC'})) {
+        print $tcsettings{'SRC'};
+    }
 
+    $selected{'DST'}{'any'} = '';
+    $selected{'DST'}{'in-addr'} = '';
+    $selected{'DST'}{'files'} = '';
+    $selected{'DST'}{'custom-blocked'} = '';
+    $selected{'DST'}{'custom-expressions'} = '';
+    my @selectedcategories = split(/\|/, $tcsettings{'DST'});
+    foreach (@selectedcategories) {
+        $selected{'DST'}{$_} = "selected='selected'";
+    }
+
     print <<END
 </textarea></td>
 
                <td>&nbsp;</td>
                <td class='base' rowspan='2' valign='top'>
                <select name='DST' size='6' multiple>
-               <option value='any' 
$selected{'DST'}{'any'}>$Lang::tr{'urlfilter category all'}</option>
-               <option value='in-addr' 
$selected{'DST'}{'in-addr'}>in-addr</option>
+            <option value='any' $selected{'DST'}{'any'}>$Lang::tr{'urlfilter 
category all'}</option>
+            <option value='in-addr' 
$selected{'DST'}{'in-addr'}>in-addr</option>
 END
-        ;
+;
 
     &readblockcategories;
-    foreach (@categories) {
-        print "<option value='$_' $selected{'DST'}{$_}>$_</option>\n";
+    foreach my $category (@categories) {
+        my $selected = '';
+        if(defined($selected{'DST'}{$category})) {
+            $selected = "selected='selected'";
+        }
+        print "<option value='$category' $selected>$category</option>\n";
     }
 
     print <<END
-               <option value='files' $selected{'DST'}{'files'}>files</option>
-               <option value='custom-blocked' 
$selected{'DST'}{'custom-blocked'}>custom-blocked</option>
-               <option value='custom-expressions' 
$selected{'DST'}{'custom-expressions'}>custom-expressions</option>
+            <option value='files' $selected{'DST'}{'files'}>files</option>
+            <option value='custom-blocked' 
$selected{'DST'}{'custom-blocked'}>custom-blocked</option>
+            <option value='custom-expressions' 
$selected{'DST'}{'custom-expressions'}>custom-expressions</option>
                </select>
                </td>
                <td>&nbsp;</td>
                <td class='base' valign='top'>
                <select name='ACCESS'>
-               <option value='block' 
$selected{'ACCESS'}{'block'}>$Lang::tr{'block'}</option>
-               <option value='allow' 
$selected{'ACCESS'}{'allow'}>$Lang::tr{'allow'}</option>
+            <option value='block' 
$selected{'ACCESS'}{'block'}>$Lang::tr{'block'}</option>
+            <option value='allow' 
$selected{'ACCESS'}{'allow'}>$Lang::tr{'allow'}</option>
                </select>
                </td>
                <td>&nbsp;</td>
@@ -1980,7 +2092,6 @@
                <td>&nbsp;</td>
        </tr>
 </table>
-
 <table width='100%'>
        <tr>
                <td class='base'>$Lang::tr{'enabled'}:<input type='checkbox' 
name='ENABLERULE' $checked{'ENABLERULE'}{'on'} /></td>
@@ -2055,6 +2166,9 @@
         $id++;
         chomp($line);
         @temp = split(/\,/, $line);
+
+        $temp[16] = '' unless(defined($temp[16]));
+
         if ($tcsettings{'ACTION'} eq $Lang::tr{'edit'} && $tcsettings{'ID'} eq 
$id) {
             print "<tr class='selectcolour'>\n";
         }
@@ -2286,13 +2400,20 @@
         </tr><tr>
             <td><textarea name='QUOTA_USERS' cols='32' rows='6' wrap='off'>
 END
-        ;
+;
 
-    $uqsettings{'QUOTA_USERS'} =~ s/\|/\n/g;
-    print $uqsettings{'QUOTA_USERS'};
+    if(defined($uqsettings{'QUOTA_USERS'})) {
+        $uqsettings{'QUOTA_USERS'} =~ s/\|/\n/g;
+        print $uqsettings{'QUOTA_USERS'};
+    }
 
+    $selected{'SPORADIC'}{'0'} = '';
+    $selected{'SPORADIC'}{'300'} = '';
+    $selected{'SPORADIC'}{'900'} = '';
+    $selected{'SPORADIC'}{$uqsettings{'SPORADIC'}} = "selected='selected'";
+
     print <<END
-            </textarea></td>
+</textarea></td>
         </tr>
         </table>
     </td>
@@ -2303,16 +2424,28 @@
             <option value='300' $selected{'SPORADIC'}{'300'}>5 
$Lang::tr{'minutes'}</option>
             <option value='900' $selected{'SPORADIC'}{'900'}>15 
$Lang::tr{'minutes'}</option>
     </select></td>
-</tr><tr>
+</tr>
+END
+;
+
+    $selected{'RENEWAL'}{'hourly'} = '';
+    $selected{'RENEWAL'}{'daily'} = '';
+    $selected{'RENEWAL'}{'weekly'} = '';
+    $selected{'RENEWAL'}{$uqsettings{'RENEWAL'}} = "selected='selected'";
+
+    print <<END
+<tr>
     <td class='base'>$Lang::tr{'urlfilter renewal period'}:</td>
     <td class='base'><select name='RENEWAL'>
             <option value='hourly' 
$selected{'RENEWAL'}{'hourly'}>$Lang::tr{'hourly'}</option>
             <option value='daily'  
$selected{'RENEWAL'}{'daily'}>$Lang::tr{'daily'}</option>
             <option value='weekly' 
$selected{'RENEWAL'}{'weekly'}>$Lang::tr{'weekly'}</option>
     </select></td>
-</tr><tr>
+</tr>
+<tr>
     <td colspan='2'>&nbsp;</td>
-</tr><tr>
+</tr>
+<tr>
     <td class='base'>$Lang::tr{'enabled'}:</td>
     <td class='base'><input type='checkbox' name='ENABLEQUOTA' 
$checked{'ENABLEQUOTA'}{'on'} /></td>
 </tr>
@@ -2534,15 +2667,18 @@
 END
         ;
 
-    print $besettings{'BE_DOMAINS'};
-
+    if(defined($besettings{'BE_DOMAINS'})) {
+        print $besettings{'BE_DOMAINS'};
+    }
     print <<END
 </textarea></td>
        <td colspan='2'><textarea name='BE_URLS' cols='38' rows='10' wrap='off'>
 END
         ;
 
-    print $besettings{'BE_URLS'};
+    if(defined($besettings{'BE_URLS'})) {
+        print $besettings{'BE_URLS'};
+    }
 
     print <<END
 </textarea></td>
@@ -2555,7 +2691,9 @@
 END
         ;
 
-    print $besettings{'BE_EXPRESSIONS'};
+    if(defined($besettings{'BE_EXPRESSIONS'})) {
+        print $besettings{'BE_EXPRESSIONS'};
+    }
 
     print <<END
 </textarea></td>
@@ -2571,11 +2709,15 @@
        <td width='20%' class='base'>
        <select name='BE_BLACKLIST'>
 END
-        ;
+;
 
     &readblockcategories;
-    foreach (@categories) {
-        print "<option value='$_' $selected{'BE_BLACKLIST'}{$_}>$_</option>\n";
+    foreach my $category (@categories) {
+        my $selected = '';
+        if($category eq $besettings{'BE_BLACKLIST'}) {
+            $selected = "selected='selected'";
+        }
+        print "<option value='$category' $selected>$category</option>\n";
     }
 
     print <<END
@@ -2615,12 +2757,21 @@
 <tr>
                <td class='base' colspan='4'><b>$Lang::tr{'urlfilter install 
blacklist'}</b></td>
 </tr>
+END
+;
+
+    $checked{'NORESTART'}{'off'}                                = '';
+    $checked{'NORESTART'}{'on'}                                 = '';
+    $checked{'NORESTART'}{$besettings{'NORESTART'}} = "checked='checked'";
+
+    print <<END
 <tr>
        <td width='25%' class='base'>$Lang::tr{'urlfilter dont restart 
urlfilter'}:</td>
        <td width='20%' class='base'><input type='checkbox' name='NORESTART' 
$checked{'NORESTART'}{'on'} /></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
 </tr>
+
 <tr>
        <td><input type='submit' name='ACTION' value='$Lang::tr{'urlfilter 
install blacklist'}' /></td>
 </tr>
@@ -2718,7 +2869,9 @@
 
     &getblockcategory($dbdir);
 
-    foreach (@categories) { $_ = substr($_, length($dbdir) + 1); }
+    foreach (@categories) {
+        $_ = substr($_, length($dbdir) + 1);
+    }
 
     @filtergroups = @categories;
 
@@ -2895,54 +3048,68 @@
     if (!(-d "$dbdir/custom/allowed")) { mkdir("$dbdir/custom/allowed") }
 
     open(FILE, ">/$dbdir/custom/blocked/domains");
-    @temp = split(/\n/, $filtersettings{'CUSTOM_BLACK_DOMAINS'});
-    foreach (@temp) {
-        s/^\s+//g;
-        s/\s+$//g;
-        s/\n//g;
-        unless ($_ eq '') { print FILE "$_\n"; }
+    if(defined($filtersettings{'CUSTOM_BLACK_DOMAINS'})) {
+        @temp = split(/\n/, $filtersettings{'CUSTOM_BLACK_DOMAINS'});
+        foreach (@temp) {
+            s/^\s+//g;
+            s/\s+$//g;
+            s/\n//g;
+            unless ($_ eq '') { print FILE "$_\n"; }
+        }
     }
     close(FILE);
+
     open(FILE, ">/$dbdir/custom/blocked/urls");
-    @temp = split(/\n/, $filtersettings{'CUSTOM_BLACK_URLS'});
-    foreach (@temp) {
-        s/^\s+//g;
-        s/\s+$//g;
-        s/\n//g;
-        unless ($_ eq '') { print FILE "$_\n"; }
+    if(defined($filtersettings{'CUSTOM_BLACK_URLS'})) {
+        @temp = split(/\n/, $filtersettings{'CUSTOM_BLACK_URLS'});
+        foreach (@temp) {
+            s/^\s+//g;
+            s/\s+$//g;
+            s/\n//g;
+            unless ($_ eq '') { print FILE "$_\n"; }
+        }
     }
     close(FILE);
+
     open(FILE, ">/$dbdir/custom/blocked/expressions");
-    @temp = split(/\n/, $filtersettings{'CUSTOM_EXPRESSIONS'});
-    foreach (@temp) {
-        s/^\s+//g;
-        s/\s+$//g;
-        s/\n//g;
-        unless ($_ eq '') { print FILE "$_\n"; }
+    if(defined($filtersettings{'CUSTOM_EXPRESSIONS'})) {
+        @temp = split(/\n/, $filtersettings{'CUSTOM_EXPRESSIONS'});
+        foreach (@temp) {
+            s/^\s+//g;
+            s/\s+$//g;
+            s/\n//g;
+            unless ($_ eq '') { print FILE "$_\n"; }
+        }
     }
     close(FILE);
+
     open(FILE, ">/$dbdir/custom/blocked/files");
     if ($filtersettings{'BLOCK_EXECUTABLES'} eq 'on') { print FILE 
"$executables\n"; }
     if ($filtersettings{'BLOCK_AUDIO-VIDEO'} eq 'on') { print FILE 
"$audiovideo\n"; }
     if ($filtersettings{'BLOCK_ARCHIVES'}    eq 'on') { print FILE 
"$archives\n"; }
     close(FILE);
+
     open(FILE, ">/$dbdir/custom/allowed/domains");
-    @temp = split(/\n/, $filtersettings{'CUSTOM_WHITE_DOMAINS'});
-
-    foreach (@temp) {
-        s/^\s+//g;
-        s/\s+$//g;
-        s/\n//g;
-        unless ($_ eq '') { print FILE "$_\n"; }
+    if(defined($filtersettings{'CUSTOM_WHITE_DOMAINS'})) {
+        @temp = split(/\n/, $filtersettings{'CUSTOM_WHITE_DOMAINS'});
+        foreach (@temp) {
+            s/^\s+//g;
+            s/\s+$//g;
+            s/\n//g;
+            unless ($_ eq '') { print FILE "$_\n"; }
+        }
     }
     close(FILE);
+
     open(FILE, ">/$dbdir/custom/allowed/urls");
-    @temp = split(/\n/, $filtersettings{'CUSTOM_WHITE_URLS'});
-    foreach (@temp) {
-        s/^\s+//g;
-        s/\s+$//g;
-        s/\n//g;
-        unless ($_ eq '') { print FILE "$_\n"; }
+    if(defined($filtersettings{'CUSTOM_WHITE_URLS'})) {
+        @temp = split(/\n/, $filtersettings{'CUSTOM_WHITE_URLS'});
+        foreach (@temp) {
+            s/^\s+//g;
+            s/\s+$//g;
+            s/\n//g;
+            unless ($_ eq '') { print FILE "$_\n"; }
+        }
     }
     close(FILE);
 
@@ -2982,8 +3149,8 @@
         if ($filtersettings{'BLOCK_IP_ADDR'} eq 'on') {
             $defaultrule .= "!in-addr ";
         }
-        for ($i = 0; $i <= @filtergroups; $i++) {
-            if ($filtersettings{$filtergroups[$i]} eq 'on') {
+        for ($i = 0; $i < @filtergroups; $i++) {
+            if (defined($filtersettings{$filtergroups[$i]}) && 
$filtersettings{$filtergroups[$i]} eq 'on') {
                 $defaultrule .= "!$categories[$i] ";
             }
         }
@@ -3371,3 +3538,38 @@
 }
 
 # -------------------------------------------------------------------
+
+sub resetTcSettings
+{
+    $tcsettings{'DEFINITION'}   = 'within';
+    $tcsettings{'FROM_HOUR'}    = 0;
+    $tcsettings{'FROM_MINUTE'}  = 0;
+    $tcsettings{'TO_HOUR'}      = 24;
+    $tcsettings{'TO_MINUTE'}    = 0;
+    $tcsettings{'ACCESS'}       = 'block';
+    $tcsettings{'MON'}          = 'off';
+    $tcsettings{'TUE'}          = 'off';
+    $tcsettings{'WED'}          = 'off';
+    $tcsettings{'THU'}          = 'off';
+    $tcsettings{'FRI'}          = 'off';
+    $tcsettings{'SAT'}          = 'off';
+    $tcsettings{'SUN'}          = 'off';
+    $tcsettings{'SRC'}          = '';
+    $tcsettings{'DST'}          = '';
+    $tcsettings{'COMMENT'}      = '';
+    $tcsettings{'ACTION'}       = '';
+    $tcsettings{'MODE'}         = '';
+    $tcsettings{'CHANGED'}      = 'no';
+}
+
+sub resetUqSettings
+{
+    $uqsettings{'TIME_QUOTA'}   = '';
+    $uqsettings{'SPORADIC'}     = '0';
+    $uqsettings{'RENEWAL'}      = 'hourly';
+    $uqsettings{'ENABLEQUOTA'}  = 'off';
+    $uqsettings{'QUOTA_USERS'}  = '';
+    $uqsettings{'ACTION'}       = '';
+    $uqsettings{'MODE'}         = '';
+    $uqsettings{'CHANGED'}      = 'no';
+}

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