diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index 509abecf7..82b29e387 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -530,14 +530,19 @@ class Application_Model_Preference public static function GetLatestLink(){ $link = self::GetValue("latest_link"); if($link == null || strlen($link) == 0) { - return ""; + return "http://www.sourcefabric.org/en/airtime/download/"; } else { return $link; } } public static function SetLatestLink($link){ - self::SetValue("latest_link", $link); + $pattern = "#^(http|https|ftp)://" . + "([a-zA-Z0-9]+\.)*[a-zA-Z0-9]+" . + "(/[a-zA-Z0-9\-\.\_\~\:\?\#\[\]\@\!\$\&\'\(\)\*\+\,\;\=]+)*/?$#"; + if(preg_match($pattern, $link)) { + self::SetValue("latest_link", $link); + } } public static function SetUploadToSoundcloudOption($upload) { diff --git a/utils/phone_home_stat.php b/utils/phone_home_stat.php index 24a975d06..6b3d8ecde 100644 --- a/utils/phone_home_stat.php +++ b/utils/phone_home_stat.php @@ -72,6 +72,8 @@ if(Application_Model_Preference::GetSupportFeedback() == '1'){ curl_setopt($ch, CURLOPT_POSTFIELDS, $dataArray); $result = curl_exec($ch); + + curl_close($ch); } // Get latest version from stat server and store to db @@ -82,10 +84,16 @@ if(Application_Model_Preference::GetPlanLevel() == 'disabled'){ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); $result = curl_exec($ch); - $resultArray = explode("\n", $result); - Application_Model_Preference::SetLatestVersion($resultArray[0]); - Application_Model_Preference::SetLatestLink($resultArray[1]); + if(curl_errno($ch)) { + echo "curl error: " . curl_error($ch) . "\n"; + } else { + $resultArray = explode("\n", $result); + Application_Model_Preference::SetLatestVersion($resultArray[0]); + Application_Model_Preference::SetLatestLink($resultArray[1]); + } + + curl_close($ch); } /**