• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/groupdavclient.php
  • Класс: CDavGroupdavClient
  • Вызов: CDavGroupdavClient::Send
private function Send($request)
{
	$i = 0;
	while (true)
	{
		$i++;
		if ($i > 3)
		{
			break;
		}

		if ($this->debug)
		{
			$f = fopen($_SERVER["DOCUMENT_ROOT"]."/++++++++.+++", "a");
			fwrite($f, "n>>>>>>>>>>>>>>>>>> REQUEST ".$i." >>>>>>>>>>>>>>>>n");
			fwrite($f, $request ? $request->ToString() : "???");
			fwrite($f, "n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<privateIp === false)
		{
			$parsedUrl = new BitrixMainWebUri($this->scheme. '://'
				. $this->server . ':'
				. ($this->port) . '/'
				. $request->GetPath()
			);
			$ip = IpAddress::createByUri($parsedUrl);
			if($ip->isPrivate())
			{
				$this->AddError("401", GetMessage("DAV_GDC_INCORRECT_SERVER"));
				return null;
			}
		}

		$this->SendRequest($request);
		$response = $this->GetResponse();

		if ($this->debug)
		{
			$f = fopen($_SERVER["DOCUMENT_ROOT"]."/++++++++.+++", "a");
			fwrite($f, "n>>>>>>>>>>>>>>>>>> RESPONCE ".$i." >>>>>>>>>>>>>>>>n");
			fwrite($f, $response ? $response->Dump() : "???");
			fwrite($f, "n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<GetHeader('Location')) && !is_null($location) && $response->GetStatus('code') != 201)
			{
				if ($this->proxyUsed)
					$request->SetPath($this->scheme."://".$this->server.((intval($this->port) > 0) ? ":".$this->port : "").$location);
				else
					$request->SetPath($location);

				continue;
			}
			elseif (($statusCode = $response->GetStatus('code')) && (intval($statusCode) == 401))
			{
				$request = $this->Authenticate($request, $response);
				if (is_null($request))
				{
					return null;
				}
				continue;
			}
		}

		break;
	}

	if (!is_null($response) && ($statusCode = $response->GetStatus('code')) && (intval($statusCode) == 401))
	{
		$this->AddError("401", GetMessage("DAV_GDC_NOT_AUTH"));
	}

	if ($this->debug)
	{
		$f = fopen($_SERVER["DOCUMENT_ROOT"]."/++++++++.+++", "a");
		fwrite($f, "n>>>>>>>>>>>>>>>>>> RESPONSE >>>>>>>>>>>>>>>>n");
		if (is_null($response))
		{
			fwrite($f, "NULL");
		}
		else
		{
			fwrite($f, $response->Dump());
		}
		fwrite($f, "n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<