public static function client_startup() { if (($proxy_address = pts_config::read_user_config('PhoronixTestSuite/Options/Networking/ProxyAddress', false)) && ($proxy_port = pts_config::read_user_config('PhoronixTestSuite/Options/Networking/ProxyPort', false))) { self::$network_proxy['proxy'] = $proxy_address . ':' . $proxy_port; self::$network_proxy['address'] = $proxy_address; self::$network_proxy['port'] = $proxy_port; } else { if (($env_proxy = getenv('http_proxy')) != false && count($env_proxy = pts_strings::colon_explode($env_proxy)) == 2) { self::$network_proxy['proxy'] = $env_proxy[0] . ':' . $env_proxy[1]; self::$network_proxy['address'] = $env_proxy[0]; self::$network_proxy['port'] = $env_proxy[1]; } } self::$network_timeout = pts_config::read_user_config('PhoronixTestSuite/Options/Networking/Timeout', 20); if (ini_get('allow_url_fopen') == 'Off') { if (!defined('PHOROMATIC_SERVER')) { echo PHP_EOL . 'The allow_url_fopen option in your PHP configuration must be enabled for network support.' . PHP_EOL . PHP_EOL; } self::$disable_network_support = true; } else { if (pts_config::read_bool_config('PhoronixTestSuite/Options/Networking/NoInternetCommunication', 'FALSE')) { if (!defined('PHOROMATIC_SERVER')) { echo PHP_EOL . 'Internet Communication Is Disabled Per Your User Configuration.' . PHP_EOL . PHP_EOL; } self::$disable_internet_support = true; } else { if (pts_config::read_bool_config('PhoronixTestSuite/Options/Networking/NoNetworkCommunication', 'FALSE')) { if (!defined('PHOROMATIC_SERVER')) { echo PHP_EOL . 'Network Communication Is Disabled Per Your User Configuration.' . PHP_EOL . PHP_EOL; } self::$disable_network_support = true; } else { if (pts_flags::no_network_communication() == true) { //echo PHP_EOL . 'Network Communication Is Disabled Per Your User Configuration.' . PHP_EOL . PHP_EOL; self::$disable_network_support = true; } else { if (!PTS_IS_WEB_CLIENT) { $server_response = pts_network::http_get_contents('http://www.phoronix-test-suite.com/PTS', false, false); if ($server_response != 'PTS') { // Failed to connect to PTS server // As a last resort, see if it can resolve IP to Google.com as a test for Internet connectivity... // i.e. in case Phoronix server is down or some other issue, so just see if Google will resolve // If google.com fails to resolve, it will simply return the original string if (gethostbyname('google.com') == 'google.com') { echo PHP_EOL; if (PTS_IS_DAEMONIZED_SERVER_PROCESS) { // Wait some seconds in case network is still coming up foreach (array(20, 40) as $time_to_wait) { sleep($time_to_wait); $server_response = pts_network::http_get_contents('http://www.phoronix-test-suite.com/PTS', false, false); if ($server_response != 'PTS' && gethostbyname('google.com') == 'google.com') { trigger_error('No Internet Connectivity After Wait', E_USER_WARNING); self::$disable_internet_support = true; } else { self::$disable_internet_support = false; break; } } } else { trigger_error('No Internet Connectivity', E_USER_WARNING); self::$disable_internet_support = true; } } } } } } } } if (pts_network::network_support_available() == false && ini_get('file_uploads') == 'Off') { echo PHP_EOL . 'The file_uploads option in your PHP configuration must be enabled for network support.' . PHP_EOL . PHP_EOL; } }