From 8a072e707ee4e5bbf0ac3b77eb426428f2d6b308 Mon Sep 17 00:00:00 2001
From: wyrie <wyrie@ispconfig3>
Date: Wed, 20 Jan 2010 13:24:27 +0000
Subject: [PATCH] Fixed: FS#1034 - Gentoo portage sync too frequent

---
 .../monitor_core_module.inc.php               | 22 ++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index 642395eeb5..0e3e6dfa5d 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -533,7 +533,27 @@ class monitor_core_module {
         	/*
         	 * first update the portage tree
         	 */
-        	shell_exec('emerge --sync --quiet');
+        	
+        	// In keeping with gentoo's rsync policy, don't update to frequently (every four hours - taken from http://www.gentoo.org/doc/en/source_mirrors.xml)
+        	$do_update = true;
+        	if (file_exists('/usr/portage/metadata/timestamp.chk'))
+        	{
+        		$datetime = file_get_contents('/usr/portage/metadata/timestamp.chk');
+        		$datetime = trim($datetime);
+        		
+        		$dstamp = strtotime($datetime);
+        		if ($dstamp) 
+        		{
+        			$checkat = $dstamp + 14400; // + 4hours
+        			if (mktime() < $checkat) {
+        				$do_update = false;
+        			} 
+        		}
+        	}
+        	
+        	if ($do_update) {
+        		shell_exec('emerge --sync --quiet');
+        	}
         	
         	/*
              * Then test the upgrade.
-- 
GitLab