mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-03 20:49:08 +01:00
User-Agent complient with https://svn.tools.ietf.org/svn/wg/httpbis/draft-ietf-httpbis/latest/p2-semantics.html#header.user-agent
This commit is contained in:
parent
b67e43d3ed
commit
d7204c520e
@ -291,6 +291,9 @@ class ischedule_client
|
|||||||
throw new Exception('You need to generate a key pair first!');
|
throw new Exception('You need to generate a key pair first!');
|
||||||
}
|
}
|
||||||
$url_parts = parse_url($this->url);
|
$url_parts = parse_url($this->url);
|
||||||
|
$user_agent = 'EGroupware-iSchedule-client/'.$GLOBALS['egw_info']['server']['versions']['phpgwapi'].' '.
|
||||||
|
preg_replace('|^\$Id$').
|
||||||
|
' PHP/'.PHP_VERSION;
|
||||||
$headers = array(
|
$headers = array(
|
||||||
'Host' => $url_parts['host'].($url_parts['port'] ? ':'.$url_parts['port'] : ''),
|
'Host' => $url_parts['host'].($url_parts['port'] ? ':'.$url_parts['port'] : ''),
|
||||||
'iSchedule-Version' => self::VERSION,
|
'iSchedule-Version' => self::VERSION,
|
||||||
@ -299,7 +302,7 @@ class ischedule_client
|
|||||||
'Originator' => $this->originator,
|
'Originator' => $this->originator,
|
||||||
'Recipient' => $this->recipients,
|
'Recipient' => $this->recipients,
|
||||||
'Cache-Control' => 'no-cache, no-transform', // required by iSchedule spec
|
'Cache-Control' => 'no-cache, no-transform', // required by iSchedule spec
|
||||||
'User-Agent' => 'EGroupware iSchedule client '.$GLOBALS['egw_info']['server']['versions']['phpgwapi'].' $Id$',
|
'User-Agent' => $user_agent,
|
||||||
'Content-Length' => bytes($content),
|
'Content-Length' => bytes($content),
|
||||||
);
|
);
|
||||||
$header_string = '';
|
$header_string = '';
|
||||||
@ -316,7 +319,7 @@ class ischedule_client
|
|||||||
array(
|
array(
|
||||||
'method' => 'POST',
|
'method' => 'POST',
|
||||||
'header' => $header_string,
|
'header' => $header_string,
|
||||||
'user_agent' => 'EGroupware iSchedule client '.$GLOBALS['egw_info']['server']['versions']['phpgwapi'].' $Id$',
|
'user_agent' => $user_agent,
|
||||||
//'follow_location' => 1, // default 1=follow, but only for GET, not POST!
|
//'follow_location' => 1, // default 1=follow, but only for GET, not POST!
|
||||||
//'timeout' => $timeout, // max timeout in seconds (float)
|
//'timeout' => $timeout, // max timeout in seconds (float)
|
||||||
'content' => $content,
|
'content' => $content,
|
||||||
@ -365,9 +368,10 @@ class ischedule_client
|
|||||||
* @param string $body
|
* @param string $body
|
||||||
* @param string $selector='calendar'
|
* @param string $selector='calendar'
|
||||||
* @param string $sign_headers='iSchedule-Version:Content-Type:Originator:Recipient'
|
* @param string $sign_headers='iSchedule-Version:Content-Type:Originator:Recipient'
|
||||||
|
* @param int $expires seconds the signature is valid, default 300
|
||||||
* @return string DKIM-Signature: ...
|
* @return string DKIM-Signature: ...
|
||||||
*/
|
*/
|
||||||
public function dkim_sign(array $headers, $body, $selector='calendar',$sign_headers=self::DKIM_HEADERS)
|
public function dkim_sign(array $headers, $body, $selector='calendar',$sign_headers=self::DKIM_HEADERS,$expires=300)
|
||||||
{
|
{
|
||||||
$header_values = $header_names = array();
|
$header_values = $header_names = array();
|
||||||
foreach(explode(':', $sign_headers) as $header)
|
foreach(explode(':', $sign_headers) as $header)
|
||||||
@ -386,7 +390,7 @@ class ischedule_client
|
|||||||
"v=1; ". // DKIM Version
|
"v=1; ". // DKIM Version
|
||||||
"a=\$a; ". // The algorithm used to generate the signature "rsa-sha1"
|
"a=\$a; ". // The algorithm used to generate the signature "rsa-sha1"
|
||||||
"q=dns/txt:http/well-known; ". // how to fetch public key: dns/txt, http/well-known or private-exchange
|
"q=dns/txt:http/well-known; ". // how to fetch public key: dns/txt, http/well-known or private-exchange
|
||||||
"x=".(time()+300)."; ". // how long request will be valid as timestamp
|
"x=".(time()+$expires)."; ". // how long request will be valid as timestamp
|
||||||
// end iSchedule specific
|
// end iSchedule specific
|
||||||
"s=\$s; ". // The selector subdividing the namespace for the "d=" (domain) tag
|
"s=\$s; ". // The selector subdividing the namespace for the "d=" (domain) tag
|
||||||
"d=\$d; ". // The domain of the signing entity
|
"d=\$d; ". // The domain of the signing entity
|
||||||
|
Loading…
Reference in New Issue
Block a user