sarg-squidguard-block.php (sarg-2.3.11) | : | sarg-squidguard-block.php (sarg-2.4.0) | ||
---|---|---|---|---|
skipping to change at line 28 | skipping to change at line 28 | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | * GNU General Public License for more details. | |||
* | * | |||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | |||
* along with this program; if not, write to the Free Software | * along with this program; if not, write to the Free Software | |||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. | |||
* | * | |||
*/ | */ | |||
// Change to squidGuard and sarg config file paths | require_once "config.php.inc"; | |||
$SargConf = "/usr/local/sarg/sarg.conf"; | require_once "url_validator.php.inc"; | |||
$squidGuardConf = "/usr/local/squidGuard/squidGuard.conf"; | ||||
global $SargConf; | global $SargConf; | |||
global $dbhome; | global $dbhome; | |||
global $language; | ||||
include_once("language.php"); | putenv("LANG=$language"); | |||
if (!setlocale(LC_ALL, $language)) | ||||
{ | ||||
echo "<p>"; | ||||
printf(gettext("Invalid locale: %s"),$language); | ||||
echo "</p>\n"; | ||||
exit; | ||||
} | ||||
$domain = 'messages'; | ||||
bindtextdomain($domain, "./locale"); | ||||
textdomain($domain); | ||||
include_once("style.php"); | include_once("style.php"); | |||
if (!isset($_GET['url'])) | ||||
{ | ||||
echo "<p>",gettext("No URL to block"),"</p>\n"; | ||||
exit; | ||||
} | ||||
$url = $_GET['url']; | $url = $_GET['url']; | |||
$squidGuard_conf = '/usr/local/squidGuard/squidGuard.conf'; | if (!check_url($url)) | |||
{ | ||||
echo "<p>",gettext("Invalid URL to block"),"</p>\n"; | ||||
exit; | ||||
} | ||||
function parse_config($line,$clave) { | function parse_config($line,$clave) { | |||
if (preg_match("/dbhome/i", $line)) { | if (preg_match("/dbhome/i", $line)) { | |||
global $dbhome; | global $dbhome; | |||
$l = explode(' ', $line); | $l = explode(' ', $line); | |||
list(, $dbhome) = $l; | list(, $dbhome) = $l; | |||
$dbhome=preg_replace('/\s+/','',$dbhome); | $dbhome=preg_replace('/\s+/','',$dbhome); | |||
} | } | |||
} | } | |||
echo "<center>\n"; | ||||
echo "<table>\n"; | ||||
echo "<tr><td class=\"title\">"; | ||||
print(gettext ("Sarg-SquidGuard - URL Blocking")); | ||||
echo "</td></tr>\n"; | ||||
echo "<tr><td class=\"header2\">"; | ||||
print(gettext ("Choose the rule set where")); | ||||
echo "<a href=\"http://$url\"> $url</a> "; | ||||
print(gettext ("will by added")); | ||||
echo "</td></tr>\n"; | ||||
echo "</table>\n"; | ||||
echo "<table>\n"; | ||||
$lines=file($squidGuardConf); | $lines=file($squidGuardConf); | |||
array_walk($lines,'parse_config'); | array_walk($lines,'parse_config'); | |||
if (is_dir($dbhome)) { | ?> | |||
if ($ha1 = opendir($dbhome)) { | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/x | |||
while (false !== ($file = readdir($ha1))) { | html1/DTD/xhtml1-strict.dtd"> | |||
if ($file == '.' || $file == '..') continue; | <html xmlns="http://www.w3.org/1999/xhtml"> | |||
echo "<tr><td class=\"header\">$file</td></tr>\n"; | <head> | |||
$dir2 = $dbhome.'/'.$file; | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> | |||
if (is_dir($dir2)) { | <title><?php echo gettext("Sarg-SquidGuard - URL Blocking")?></title> | |||
if ($ha2 = opendir($dir2)) { | </head> | |||
while (false !== ($file2 = readdir($ha2))) { | <body> | |||
if ($file2 == '.' || $file2 == '..') continue; | <center> | |||
echo "<tr><td class=\"data2\"><a href=\"sarg-squidguard-blo | <table> | |||
ck2.php?file=$dir2/$file2&url=$url&lang=$language\">$file2</a></td></tr>\n"; | <tr><td class="title"><?php echo gettext("Sarg-SquidGuard - URL Blocking")?></td | |||
} | ></tr> | |||
} | <tr><td class="header2"> | |||
closedir($ha2); | <?php printf(gettext("Choose the rule set where %s will be added"),"<a href=\"ht | |||
} | tp://$url\">".htmlspecialchars($url)."</a>")?></td></tr> | |||
} | </table> | |||
closedir($ha1); | <?php | |||
} | ||||
if (!is_dir($dbhome)) | ||||
{ | ||||
echo "<p>"; | ||||
printf(gettext("The path <tt>%s</tt> (which is supposed to be the squidGu | ||||
ard DB home) is not a directory"),$dbhome); | ||||
echo "</p>\n"; | ||||
} | ||||
else | ||||
{ | ||||
$ha1 = opendir($dbhome); | ||||
if ($ha1) | ||||
{ | ||||
$table=false; | ||||
while (false !== ($file = readdir($ha1))) | ||||
{ | ||||
if ($file == '.' || $file == '..') continue; | ||||
$dir2 = $dbhome.'/'.$file; | ||||
if (is_dir($dir2)) | ||||
{ | ||||
if ($ha2 = opendir($dir2)) | ||||
{ | ||||
$first=true; | ||||
while (false !== ($file2 = readdir($ha2)) | ||||
) | ||||
{ | ||||
if ($file2 == '.' || $file2 == '. | ||||
.') continue; | ||||
if (!$table) | ||||
{ | ||||
echo "<table>\n"; | ||||
$table=true; | ||||
} | ||||
if ($first) | ||||
{ | ||||
echo "<tr><td class=\"hea | ||||
der\">$file</td></tr>\n"; | ||||
$first=false; | ||||
} | ||||
echo "<tr><td class=\"data2\"><a | ||||
href=\"sarg-squidguard-block2.php?file=",rawurlencode($file.'/'.$file2),"&url=$u | ||||
rl\">$file2</a></td></tr>\n"; | ||||
} | ||||
} | ||||
closedir($ha2); | ||||
} | ||||
} | ||||
closedir($ha1); | ||||
if ($table) | ||||
{ | ||||
echo "</table>\n"; | ||||
} | ||||
else | ||||
{ | ||||
echo "<p>"; | ||||
printf(gettext("No squidGuard rule found in <tt>%s</tt>") | ||||
,$dbhome); | ||||
echo "</p>\n"; | ||||
} | ||||
} | ||||
else | ||||
{ | ||||
echo "<p>"; | ||||
printf(gettext("Cannot read squidGuard DB home directory %s"),$db | ||||
home); | ||||
echo "</p>\n"; | ||||
} | ||||
} | } | |||
echo "</table>\n"; | ||||
echo "</html>\n"; | ||||
?> | ?> | |||
</html> | ||||
</body> | ||||
End of changes. 9 change blocks. | ||||
48 lines changed or deleted | 116 lines changed or added |