diff options
author | Jim P <jim@pingle.org> | 2012-03-14 05:11:44 -0700 |
---|---|---|
committer | Jim P <jim@pingle.org> | 2012-03-14 05:11:44 -0700 |
commit | fbc0feb02e505c7435d6d06957e978d00a2fe7b3 (patch) | |
tree | 63d3d9e5d3a4c02ed419597a51f9c6cb4d978f6c | |
parent | 442c60085b50372c751ae54229cf57c69273df6e (diff) | |
parent | d436abb9d5574c72bcc5b52ac2dd68468e4544ec (diff) | |
download | pfsense-packages-fbc0feb02e505c7435d6d06957e978d00a2fe7b3.tar.gz pfsense-packages-fbc0feb02e505c7435d6d06957e978d00a2fe7b3.tar.bz2 pfsense-packages-fbc0feb02e505c7435d6d06957e978d00a2fe7b3.zip |
Merge pull request #224 from phil-davis/master
Bug #2285: Do not run code in swapstate_check.php when there is no Squid cache
-rw-r--r-- | config/squid/swapstate_check.php | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/config/squid/swapstate_check.php b/config/squid/swapstate_check.php index ab5b11d8..d70c2dd4 100644 --- a/config/squid/swapstate_check.php +++ b/config/squid/swapstate_check.php @@ -30,19 +30,23 @@ require_once('config.inc'); require_once('util.inc'); $settings = $config['installedpackages']['squidcache']['config'][0]; -$cachedir =($settings['harddisk_cache_location'] ? $settings['harddisk_cache_location'] : '/var/squid/cache'); -$swapstate = $cachedir . '/swap.state'; -$disktotal = disk_total_space(dirname($cachedir)); -$diskfree = disk_free_space(dirname($cachedir)); -$diskusedpct = round((($disktotal - $diskfree) / $disktotal) * 100); -$swapstate_size = filesize($swapstate); -$swapstate_pct = round(($swapstate_size / $disktotal) * 100); +// Only check the cache if Squid is actually caching. +// If there is no cache then quietly do nothing. +if ($settings['harddisk_cache_system'] != "null"){ + $cachedir =($settings['harddisk_cache_location'] ? $settings['harddisk_cache_location'] : '/var/squid/cache'); + $swapstate = $cachedir . '/swap.state'; + $disktotal = disk_total_space(dirname($cachedir)); + $diskfree = disk_free_space(dirname($cachedir)); + $diskusedpct = round((($disktotal - $diskfree) / $disktotal) * 100); + $swapstate_size = filesize($swapstate); + $swapstate_pct = round(($swapstate_size / $disktotal) * 100); -// If the swap.state file is taking up more than 75% disk space, -// or the drive is 90% full and swap.state is larger than 1GB, -// kill it and initiate a rotate to write a fresh copy. -if (($swapstate_pct > 75) || (($diskusedpct > 90) && ($swapstate_size > 1024*1024*1024))) { - mwexec_bg("/bin/rm $swapstate; /usr/local/sbin/squid -k rotate"); - log_error(gettext(sprintf("Squid swap.state file exceeded size limits. Removing and rotating. File was %d bytes, %d%% of total disk space.", $swapstate_size, $swapstate_pct))); + // If the swap.state file is taking up more than 75% disk space, + // or the drive is 90% full and swap.state is larger than 1GB, + // kill it and initiate a rotate to write a fresh copy. + if (($swapstate_pct > 75) || (($diskusedpct > 90) && ($swapstate_size > 1024*1024*1024))) { + mwexec_bg("/bin/rm $swapstate; /usr/local/sbin/squid -k rotate"); + log_error(gettext(sprintf("Squid swap.state file exceeded size limits. Removing and rotating. File was %d bytes, %d%% of total disk space.", $swapstate_size, $swapstate_pct))); + } } ?>
\ No newline at end of file |