- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/site_checker.php
- Класс: CSiteCheckerTest
- Вызов: CSiteCheckerTest::check_update
function check_update()
{
$ServerIP = COption::GetOptionString("main", "update_site", "www.bitrixsoft.com");
$ServerPort = 80;
$proxyAddr = COption::GetOptionString("main", "update_site_proxy_addr", "");
$proxyPort = COption::GetOptionString("main", "update_site_proxy_port", "");
$proxyUserName = COption::GetOptionString("main", "update_site_proxy_user", "");
$proxyPassword = COption::GetOptionString("main", "update_site_proxy_pass", "");
$bUseProxy = !$this->arTestVars['last_value'] && $proxyAddr <> '' && $proxyPort <> '';
if ($bUseProxy)
{
$proxyPort = intval($proxyPort);
if ($proxyPort <= 0)
$proxyPort = 80;
$requestIP = $proxyAddr;
$requestPort = $proxyPort;
}
else
{
$requestIP = $ServerIP;
$requestPort = $ServerPort;
}
$strRequest = "";
$page = "us_updater_list.php";
if ($bUseProxy)
{
$strRequest .= "POST http://".$ServerIP."/bitrix/updates/".$page." HTTP/1.0rn";
if ($proxyUserName <> '')
$strRequest .= "Proxy-Authorization: Basic ".base64_encode($proxyUserName.":".$proxyPassword)."rn";
}
else
$strRequest .= "POST /bitrix/updates/".$page." HTTP/1.0rn";
$strRequest.= "User-Agent: BitrixSMUpdaterrn";
$strRequest.= "Accept: */*rn";
$strRequest.= "Host: ".$ServerIP."rn";
$strRequest.= "Accept-Language: enrn";
$strRequest.= "Content-type: application/x-www-form-urlencodedrn";
$strRequest.= "Content-length: 7rnrn";
$strRequest.= "lang=en";
$strRequest.= "rn";
$res = false;
try
{
$res = fsockopen($requestIP, $requestPort, $errno, $errstr, 5);
}
catch (Exception $e)
{
echo $e->getMessage()."n";
}
if (!$res)
{
if ($bUseProxy)
return $this->Result(false, GetMessage('SC_NO_PROXY'). ' ('.$errstr.')');
else
return $this->Result(false, GetMessage('SC_UPDATE_ERROR').' ('.$errstr.')');
}
else
{
if (BitrixMainConfigOption::get("updateserverlight", "is_turned_on", "N") === "Y")
return true;
$strRes = GetHttpResponse($res, $strRequest, $strHeaders);
if ((strpos($strRes, "EMPTY_LICENSE_KEY") !== false)
|| (strpos($strRes, "LICENSE_KEY_REQUIRED") !== false))
{
return true;
}
else
{
$strRes = mb_strtolower(strip_tags($strRes));
PrintHTTP($strRequest, $strHeaders, $strRes);
if ($bUseProxy)
return $this->Result(false, GetMessage('SC_PROXY_ERR_RESP'));
else
return $this->Result(false, GetMessage('SC_UPDATE_ERR_RESP'));
}
}
}