- Модуль: dav
- Путь к файлу: ~/bitrix/modules/dav/classes/general/groupdavclientcalendar.php
- Класс: CDavGroupdavClientCalendar
- Вызов: CDavGroupdavClientCalendar::CheckCaldavServer
static function CheckCaldavServer($url, $host, $userName, $userPassword)
{
$options = [];
if (CDav::UseProxy())
{
$arProxy = CDav::GetProxySettings();
$options = [
"proxyHost" => $arProxy["PROXY_SCHEME"],
"proxyPort" => $arProxy["PROXY_PORT"],
"proxyUser" => $arProxy["PROXY_USERNAME"],
"proxyPassword" => $arProxy["PROXY_PASSWORD"],
];
}
$client = new HttpClient($options);
$client->setPrivateIp(true);
$client->setHeader("User-Agent", "Bitrix CalDAV/CardDAV/GroupDAV client");
$client->setHeader("Connection", "Keep-Alive");
$client->setHeader("Host", $host);
for ($i = 0; $i < 3; $i++)
{
$client->query(HttpClient::HTTP_OPTIONS, $url);
if ($client->getStatus() == 401)
{
$client->setHeader('Authorization', 'Basic ' . base64_encode($userName.":".$userPassword));
continue;
}
break;
}
$headers = $client->getHeaders();
if (!empty($headers['dav']))
{
$davPart = explode(",", $headers['dav']);
foreach ($davPart as $part)
{
if (trim($part)."!" == "1!")
{
return true;
}
}
}
return false;
}