Commit 77ba16b2 authored by Sebastian Kummer's avatar Sebastian Kummer

Merge pull request #130 in ZP/z-push from...

Merge pull request #130 in ZP/z-push from feature/ZP-793-ping-modifies-syncparameters-too-agressively to develop

* commit 'f8d7d6a3':
  ZP-793 Cache requested folderid so only the SyncCollections get changed that really had a change in flags.

(cherry picked from commit 200c9f74)
parent 15b1de6d
......@@ -103,9 +103,8 @@ class Ping extends RequestProcessor {
}
if(($el = self::$decoder->getElementStartTag(SYNC_PING_FOLDERS)) && $el[EN_FLAGS] & EN_FLAGS_CONTENT) {
// remove PingableFlag from all collections
foreach ($sc as $folderid => $spa)
$spa->DelPingableFlag();
// cache requested (pingable) folderids
$pingable = array();
while(self::$decoder->getElementStartTag(SYNC_PING_FOLDER)) {
while(1) {
......@@ -142,13 +141,24 @@ class Ping extends RequestProcessor {
$foundchanges = true;
}
else if ($class == $spa->GetContentClass()) {
$spa->SetPingableFlag(true);
$pingable[] = $folderid;
ZLog::Write(LOGLEVEL_DEBUG, sprintf("HandlePing(): using saved sync state for '%s' id '%s'", $spa->GetContentClass(), $folderid));
}
}
if(!self::$decoder->getElementEndTag())
return false;
// update pingable flags
foreach ($sc as $folderid => $spa) {
// if the folderid is in $pingable, we should ping it, else remove the flag
if (in_array($folderid, $pingable)) {
$spa->SetPingableFlag(true);
}
else {
$spa->DelPingableFlag();
}
}
}
if(!self::$decoder->getElementEndTag())
return false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment