%PDF- %PDF-
| Direktori : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/DAV/ |
| Current File : //www/varak.net/mail2.varak.net_old/libraries/afterlogic/DAV/Client.php |
<?php
/*
* Copyright 2004-2014, AfterLogic Corp.
* Licensed under AGPLv3 license or AfterLogic license
* if commercial version of the product was purchased.
* See the LICENSE file for a full license statement.
*/
namespace afterlogic\DAV;
class Client extends \Sabre\DAV\Client {
/**
* Performs an HTTP options request
*
* This method returns all the features from the 'DAV:' header as an array.
* If there was no DAV header, or no contents this method will return an
* empty array.
*
* @return array
*/
public function options_ex()
{
$response = array();
$response = $this->request('OPTIONS');
$result = array();
$result['custom-server'] = false;
if(isset($response['headers']['x-server']) &&
($response['headers']['x-server'] == Constants::DAV_SERVER_NAME) != null)
{
$result['custom-server'] = true;
}
if (!isset($response['headers']['dav']))
{
$result['features'] = array();
}
else
{
$features = explode(',', $response['headers']['dav']);
foreach($features as &$v)
{
$v = trim($v);
}
$result['features'] = $features;
}
if (!isset($response['headers']['allow']))
{
$result['allow'] = array();
}
else
{
$allow = explode(',', $response['headers']['allow']);
foreach($allow as &$v)
{
$v = trim($v);
}
$result['allow'] = $allow;
}
return $result;
}
public function request($method, $url = '', $body = null, $headers = array())
{
$headers['user-agent'] = Constants::DAV_USER_AGENT;
$sLog = "REQUEST: ".$method;
if ($url != '')
{
$sLog = $sLog." ".$url;
}
if ($body != null)
{
$sLog = $sLog."\r\nBody:\r\n".$body;
}
\CApi::Log($sLog, \ELogLevel::Full, 'dav-');
\CApi::LogObject($headers, \ELogLevel::Full, 'dav-');
$response = array();
try
{
$response = parent::request($method, $url, $body, $headers);
}
catch (\Sabre\DAV\Exception $ex)
{
\CApi::LogObject($ex->getMessage(), \ELogLevel::Full, 'dav-');
throw $ex;
}
$sLog = "RESPONSE: ".$method;
if (!empty($response['body']))
{
$sLog = $sLog."\r\nBody:\r\n".$response['body'];
}
\CApi::Log($sLog, \ELogLevel::Full, 'dav-');
if (!empty($response['headers']))
{
\CApi::LogObject($response['headers'], \ELogLevel::Full, 'dav-');
}
return $response;
}
public function parseMultiStatus($body)
{
$body = str_replace('<D:', '<d:', $body);
$body = str_replace('</D:', '</d:', $body);
$body = str_replace(':D=', ':d=', $body);
return parent::parseMultiStatus($body);
}
}