mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-21 05:19:07 +01:00
2nd Fix Evolution CalDAV HTTP_IF_MATCH issue (Stylite#601)
This commit is contained in:
parent
2e3222b8e7
commit
5e371effcf
@ -267,19 +267,29 @@ abstract class groupdav_handler
|
|||||||
$etag = $this->get_etag($entry);
|
$etag = $this->get_etag($entry);
|
||||||
// If the clients sends an "If-Match" header ($_SERVER['HTTP_IF_MATCH']) we check with the current etag
|
// If the clients sends an "If-Match" header ($_SERVER['HTTP_IF_MATCH']) we check with the current etag
|
||||||
// of the calendar --> on failure we return 412 Precondition failed, to not overwrite the modifications
|
// of the calendar --> on failure we return 412 Precondition failed, to not overwrite the modifications
|
||||||
if (isset($_SERVER['HTTP_IF_MATCH']) &&
|
if (isset($_SERVER['HTTP_IF_MATCH']))
|
||||||
($this->http_if_match = (strstr($_SERVER['HTTP_IF_MATCH'], $etag) === false)))
|
|
||||||
{
|
{
|
||||||
if ($this->debug) error_log(__METHOD__."($method,,$id) HTTP_IF_MATCH='$_SERVER[HTTP_IF_MATCH]', etag='$etag': 412 Precondition failed");
|
if (strstr($_SERVER['HTTP_IF_MATCH'], $etag) === false)
|
||||||
return '412 Precondition Failed';
|
{
|
||||||
|
$this->http_if_match = $_SERVER['HTTP_IF_MATCH'];
|
||||||
|
if ($this->debug) error_log(__METHOD__."($method,,$id) HTTP_IF_MATCH='$_SERVER[HTTP_IF_MATCH]', etag='$etag': 412 Precondition failed");
|
||||||
|
return '412 Precondition Failed';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->http_if_match = $etag;
|
||||||
|
// if an IF_NONE_MATCH is given, check if we need to send a new export, or the current one is still up-to-date
|
||||||
|
if ($method == 'GET' && isset($_SERVER['HTTP_IF_NONE_MATCH']))
|
||||||
|
{
|
||||||
|
if ($this->debug) error_log(__METHOD__."($method,,$id) HTTP_IF_NONE_MATCH='$_SERVER[HTTP_IF_NONE_MATCH]', etag='$etag': 304 Not Modified");
|
||||||
|
return '304 Not Modified';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// if an IF_NONE_MATCH is given, check if we need to send a new export, or the current one is still up-to-date
|
if (isset($_SERVER['HTTP_IF_NONE_MATCH']))
|
||||||
if ($method == 'GET' &&
|
|
||||||
isset($_SERVER['HTTP_IF_NONE_MATCH']) &&
|
|
||||||
strstr($_SERVER['HTTP_IF_MATCH'], $etag) !== false)
|
|
||||||
{
|
{
|
||||||
if ($this->debug) error_log(__METHOD__."($method,,$id) HTTP_IF_NONE_MATCH='$_SERVER[HTTP_IF_NONE_MATCH]', etag='$etag': 304 Not Modified");
|
if ($this->debug) error_log(__METHOD__."($method,,$id) HTTP_IF_NONE_MATCH='$_SERVER[HTTP_IF_NONE_MATCH]', etag='$etag': 412 Precondition failed");
|
||||||
return '304 Not Modified';
|
return '412 Precondition Failed';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $entry;
|
return $entry;
|
||||||
|
Loading…
Reference in New Issue
Block a user