aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/squidGuard/.project11
-rw-r--r--packages/squidGuard/squidguard.inc2
-rw-r--r--packages/squidGuard/squidguard_configurator.inc49
3 files changed, 48 insertions, 14 deletions
diff --git a/packages/squidGuard/.project b/packages/squidGuard/.project
new file mode 100644
index 00000000..49cdc3c9
--- /dev/null
+++ b/packages/squidGuard/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>squidGuard</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/packages/squidGuard/squidguard.inc b/packages/squidGuard/squidguard.inc
index ae1b53db..a5b61644 100644
--- a/packages/squidGuard/squidguard.inc
+++ b/packages/squidGuard/squidguard.inc
@@ -1290,4 +1290,4 @@ function convert_pfxml_to_sgxml_default($pfconfig) {
return $sgx;
}
-?>
+?> \ No newline at end of file
diff --git a/packages/squidGuard/squidguard_configurator.inc b/packages/squidGuard/squidguard_configurator.inc
index e300f29f..e32169a1 100644
--- a/packages/squidGuard/squidguard_configurator.inc
+++ b/packages/squidGuard/squidguard_configurator.inc
@@ -1,8 +1,8 @@
<?php
# ------------------------------------------------------------------------------
-# squidguard_configurator.inc
-# (C) 2006, 2007 Serg Dvoriancev
-/* Redistribution and use in source and binary forms, with or without
+/* squidguard_configurator.inc
+ (C)2006 Serg Dvoriancev
+ Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
@@ -221,6 +221,7 @@ define('SQUIDGUARD_WORKDIR_DEF', '/usr/local/etc/squidGuard');
define('SQUIDGUARD_BINPATH_DEF', '/usr/local/bin');
define('SQUIDGUARD_DBHOME_DEF', '/var/db/squidGuard');
define('BLK_LOCALFILE', '/tmp/sg_blacklists.tar');
+define('DB_REBUILD_SH', '/tmp/squidGuard_db_rebuild.sh');
# ------------------------------------------------------------------------------
// debug options
@@ -598,9 +599,12 @@ function sg_reconfigure_user_db() {
set_file_access($dbhome, OWNER_NAME, 0755);
// 5. rebuild user db
- //$dst_names
+ // $dst_names; create array of names
+ $db_names = Array();
foreach($dst_names as $dname)
- sg_full_rebuild_db($dname);
+ $db_names[] = $dname;
+# sg_full_rebuild_db($dname);
+ sg_full_rebuild_db($db_names);
} else
sg_addlog("sg_reconfigure_user_db: stopped - destinations list empty");
@@ -670,21 +674,40 @@ function sg_full_rebuild_db($dblist='') {
// rebuild squidGuard DB (without waite)
if (file_exists($sg_cfgfile)) {
+
+ // rebuild via sh script
+ $sh_scr = Array();
+ $sh_scr[] = "#!/bin/sh";
+ $sh_scr[] = "cd /var/db/squidGuard";
+
if (empty($dblist)) {
// full rebuild
$cmd = $squidguard_config[FLD_BINPATH] . '/squidGuard -c $sg_cfgfile -C all';
- mwexec_bg($cmd);
+# mwexec_bg($cmd); // by sh script
+ $sh_scr[] = $cmd;
sg_addlog("sg_rebuild_db: start full rebuild db");
} else {
// partually rebuild
- $cmd_domains = $squidguard_config[FLD_BINPATH] . "/squidGuard -c $sg_cfgfile -C $dblist/domains";
- $cmd_urls = $squidguard_config[FLD_BINPATH] . "/squidGuard -c $sg_cfgfile -C $dblist/urls";
- mwexec_bg($cmd_domains);
- mwexec_bg($cmd_urls);
- sg_addlog("sg_rebuild_db: start rebuild DB '$dblist'");
+ if (is_array($dblist))
+ foreach($dblist as $dbl) {
+ $sh_scr[] = $squidguard_config[FLD_BINPATH] . "/squidGuard -c $sg_cfgfile -C $dbl/domains";
+ $sh_scr[] = $squidguard_config[FLD_BINPATH] . "/squidGuard -c $sg_cfgfile -C $dbl/urls";
+ sg_addlog("sg_rebuild_db: start rebuild DB '$dbl'");
+ }
}
// update .diff files
-# mwexec_bg($squidguard_config[FLD_BINPATH] . '/squidGuard -c $sg_cfgfile -u')*/)
+# mwexec_bg($squidguard_config[FLD_BINPATH] . '/squidGuard -c $sg_cfgfile -u')*/) // by sh script
+
+ // change db owner's after rebuild
+ $sh_scr[] = "chown -R -v " . OWNER_NAME . " " . $squidguard_config[FLD_DBHOME];
+
+ // restart squid for take effects
+ $sh_scr[] = "/usr/local/sbin/squid -k reconfigure";
+
+ // store & exec ssh
+ $sh_scr = implode("\n", $sh_scr);
+ file_put_contents(DB_REBUILD_SH, $sh_scr);
+ mwexec_bg(DB_REBUILD_SH);
} else {
sg_addlog("sg_rebuild_db: error, config file '$sg_cfgfile' not found");
}
@@ -1561,4 +1584,4 @@ function check_name ($name) {
return $err;
}
-?>
+?> \ No newline at end of file