- Модуль: dav
- Путь к файлу: ~/bitrix/modules/dav/classes/general/groupdavclient.php
- Класс: CDavGroupdavClient
- Вызов: CDavGroupdavClient::Connect
public function Connect()
{
if ($this->connected)
{
return true;
}
$requestScheme = $this->scheme;
$requestServer = $this->server;
$requestPort = $this->port;
if ($this->proxyUsed)
{
$requestScheme = $this->proxyScheme;
$requestServer = $this->proxyServer;
$requestPort = $this->proxyPort;
}
switch ($requestScheme)
{
case 'https':
if (!function_exists("openssl_verify"))
{
$this->arError[] = array("EC0", "OpenSSL PHP extention required");
$this->connected = false;
return false;
}
$requestScheme = 'ssl://';
$requestPort = $requestPort ?? 443;
break;
case 'http':
$requestScheme = '';
$requestPort = $requestPort ?? 80;
break;
default:
$this->arError[] = array("EC1", "Invalid protocol");
$this->connected = false;
return false;
}
// $this->fp = @fsockopen($requestScheme.$requestServer, $requestPort, $errno, $errstr, $this->socketTimeout);
$this->fp = @stream_socket_client(
sprintf('%s:%s', $requestScheme.$requestServer, $requestPort),
$errno,
$errstr,
$this->socketTimeout,
STREAM_CLIENT_CONNECT,
stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false
]
])
);
if (!$this->fp)
{
$this->arError[] = array($errno, $errstr);
$this->connected = false;
return false;
}
stream_set_timeout($this->fp, $this->socketTimeout);
stream_set_blocking($this->fp, 1);
$this->connected = true;
return true;
}