From bc090c5b10cf05006644782a47ec94e62bd4661d Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Fri, 27 Jul 2018 10:08:00 +0200 Subject: lib/helper.php: store git-available status in memcached --- lib/helper.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/helper.php b/lib/helper.php index 5ec1f0f..ffa5943 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -87,13 +87,19 @@ function format_time_duration($val) { function git_url($repository,$type,$commit,$path,$line = null,$commit_is_hash = null) { global $git_available; - # TODO: we might want to cache this value (with memcached ?) if (!isset($git_available)) { - $git_available = - preg_match( - "/ 200 OK$/", - get_headers("https://git.archlinux32.org/archlinux32/packages")[0] - ) == 1; + $memcache = new Memcache; + $memcache->connect('localhost', 11211) or die ('Memcached Connection Error'); + $git_available = $memcache->get('git_available'); + if ($git_available === false) { + $git_available = + preg_match( + "/ 200 OK$/", + get_headers("https://git.archlinux32.org/archlinux32/packages")[0] + ); + $memcache->set('git_available',$git_available,0,120); + }; + $git_available = $git_available == 1; } if (!isset($commit_is_hash)) $commit_is_hash = preg_match("/^[0-9a-f]{40}$/",$commit)==1; -- cgit v1.2.3-70-g09d2