@@ -18,8 +18,9 @@ discard block |
||
| 18 | 18 | * @return boolean |
| 19 | 19 | */ |
| 20 | 20 | public function Handle($commandCode) { |
| 21 | - if (!self::$decoder->getElementStartTag(SYNC_SETTINGS_SETTINGS)) |
|
| 22 | - return false; |
|
| 21 | + if (!self::$decoder->getElementStartTag(SYNC_SETTINGS_SETTINGS)) { |
|
| 22 | + return false; |
|
| 23 | + } |
|
| 23 | 24 | |
| 24 | 25 | //save the request parameters |
| 25 | 26 | $request = array(); |
@@ -50,8 +51,9 @@ discard block |
||
| 50 | 51 | } |
| 51 | 52 | //TODO - check if it is necessary |
| 52 | 53 | //no property name available - break |
| 53 | - if (!$propertyName) |
|
| 54 | - break; |
|
| 54 | + if (!$propertyName) { |
|
| 55 | + break; |
|
| 56 | + } |
|
| 55 | 57 | |
| 56 | 58 | //the property name is followed by either get or set |
| 57 | 59 | if (self::$decoder->getElementStartTag(SYNC_SETTINGS_GET)) { |
@@ -60,8 +62,10 @@ discard block |
||
| 60 | 62 | case SYNC_SETTINGS_OOF: |
| 61 | 63 | $oofGet = new SyncOOF(); |
| 62 | 64 | $oofGet->Decode(self::$decoder); |
| 63 | - if(!self::$decoder->getElementEndTag()) |
|
| 64 | - return false; // SYNC_SETTINGS_GET |
|
| 65 | + if(!self::$decoder->getElementEndTag()) { |
|
| 66 | + return false; |
|
| 67 | + } |
|
| 68 | + // SYNC_SETTINGS_GET |
|
| 65 | 69 | break; |
| 66 | 70 | |
| 67 | 71 | case SYNC_SETTINGS_USERINFORMATION: |
@@ -76,8 +80,7 @@ discard block |
||
| 76 | 80 | //TODO: a special status code needed? |
| 77 | 81 | ZLog::Write(LOGLEVEL_WARN, sprintf ("This property ('%s') is not allowed to use get in request", $propertyName)); |
| 78 | 82 | } |
| 79 | - } |
|
| 80 | - elseif (self::$decoder->getElementStartTag(SYNC_SETTINGS_SET)) { |
|
| 83 | + } elseif (self::$decoder->getElementStartTag(SYNC_SETTINGS_SET)) { |
|
| 81 | 84 | //set is available for OOF, device password and device information |
| 82 | 85 | switch ($propertyName) { |
| 83 | 86 | case SYNC_SETTINGS_OOF: |
@@ -104,16 +107,19 @@ discard block |
||
| 104 | 107 | ZLog::Write(LOGLEVEL_WARN, sprintf ("This property ('%s') is not allowed to use set in request", $propertyName)); |
| 105 | 108 | } |
| 106 | 109 | |
| 107 | - if(!self::$decoder->getElementEndTag()) |
|
| 108 | - return false; // SYNC_SETTINGS_SET |
|
| 109 | - } |
|
| 110 | - else { |
|
| 110 | + if(!self::$decoder->getElementEndTag()) { |
|
| 111 | + return false; |
|
| 112 | + } |
|
| 113 | + // SYNC_SETTINGS_SET |
|
| 114 | + } else { |
|
| 111 | 115 | ZLog::Write(LOGLEVEL_WARN, sprintf("Neither get nor set found for property '%s'", $propertyName)); |
| 112 | 116 | return false; |
| 113 | 117 | } |
| 114 | 118 | |
| 115 | - if(!self::$decoder->getElementEndTag()) |
|
| 116 | - return false; // SYNC_SETTINGS_OOF or SYNC_SETTINGS_DEVICEPW or SYNC_SETTINGS_DEVICEINFORMATION or SYNC_SETTINGS_USERINFORMATION |
|
| 119 | + if(!self::$decoder->getElementEndTag()) { |
|
| 120 | + return false; |
|
| 121 | + } |
|
| 122 | + // SYNC_SETTINGS_OOF or SYNC_SETTINGS_DEVICEPW or SYNC_SETTINGS_DEVICEINFORMATION or SYNC_SETTINGS_USERINFORMATION |
|
| 117 | 123 | |
| 118 | 124 | //break if it reached the endtag |
| 119 | 125 | $e = self::$decoder->peek(); |
@@ -128,11 +128,13 @@ |
||
| 128 | 128 | $ret = parent::Check($logAsDebug); |
| 129 | 129 | |
| 130 | 130 | // semantic checks general "turn off switch" |
| 131 | - if (defined("DO_SEMANTIC_CHECKS") && DO_SEMANTIC_CHECKS === false) |
|
| 132 | - return $ret; |
|
| 131 | + if (defined("DO_SEMANTIC_CHECKS") && DO_SEMANTIC_CHECKS === false) { |
|
| 132 | + return $ret; |
|
| 133 | + } |
|
| 133 | 134 | |
| 134 | - if (!$ret) |
|
| 135 | - return false; |
|
| 135 | + if (!$ret) { |
|
| 136 | + return false; |
|
| 137 | + } |
|
| 136 | 138 | |
| 137 | 139 | if (isset($this->startdate) && isset($this->duedate) && $this->duedate < $this->startdate) { |
| 138 | 140 | ZLog::Write(LOGLEVEL_WARN, sprintf("SyncObject->Check(): Unmet condition in object from type %s: parameter 'startdate' is HIGHER than 'duedate'. Check failed!", get_class($this) )); |
@@ -49,8 +49,7 @@ discard block |
||
| 49 | 49 | if (defined('UNSET_UNDEFINED_PROPERTIES') && UNSET_UNDEFINED_PROPERTIES && ($this instanceof SyncContact || $this instanceof SyncAppointment || $this instanceof SyncTask)) { |
| 50 | 50 | ZLog::Write(LOGLEVEL_INFO, sprintf("%s->emptySupported(): no supported list available, emptying all not set parameters", get_class($this))); |
| 51 | 51 | $supportedFields = array_keys($this->mapping); |
| 52 | - } |
|
| 53 | - else { |
|
| 52 | + } else { |
|
| 54 | 53 | return false; |
| 55 | 54 | } |
| 56 | 55 | } |
@@ -62,8 +61,9 @@ discard block |
||
| 62 | 61 | } |
| 63 | 62 | $var = $this->mapping[$field][self::STREAMER_VAR]; |
| 64 | 63 | // add var to $this->unsetVars if $var is not set |
| 65 | - if (!isset($this->$var)) |
|
| 66 | - $this->unsetVars[] = $var; |
|
| 64 | + if (!isset($this->$var)) { |
|
| 65 | + $this->unsetVars[] = $var; |
|
| 66 | + } |
|
| 67 | 67 | } |
| 68 | 68 | ZLog::Write(LOGLEVEL_DEBUG, sprintf("Supported variables to be unset: %s", implode(',', $this->unsetVars))); |
| 69 | 69 | return true; |
@@ -81,8 +81,9 @@ discard block |
||
| 81 | 81 | * @return boolean |
| 82 | 82 | */ |
| 83 | 83 | public function equals($odo, $log = false, $strictTypeCompare = false) { |
| 84 | - if ($odo === false) |
|
| 85 | - return false; |
|
| 84 | + if ($odo === false) { |
|
| 85 | + return false; |
|
| 86 | + } |
|
| 86 | 87 | |
| 87 | 88 | // check objecttype |
| 88 | 89 | if (! ($odo instanceof SyncObject)) { |
@@ -99,20 +100,17 @@ discard block |
||
| 99 | 100 | if (!isset($this->$val) && !isset($odo->$val)) { |
| 100 | 101 | ZLog::Write(LOGLEVEL_DEBUG, sprintf("SyncObject->equals() array '%s' is NOT SET in either object", $val)); |
| 101 | 102 | continue; |
| 102 | - } |
|
| 103 | - elseif (is_array($this->$val) && is_array($odo->$val)) { |
|
| 103 | + } elseif (is_array($this->$val) && is_array($odo->$val)) { |
|
| 104 | 104 | // if both arrays exist then seek for differences in the arrays |
| 105 | 105 | if (count(array_diff($this->$val, $odo->$val)) + count(array_diff($odo->$val, $this->$val)) > 0) { |
| 106 | 106 | ZLog::Write(LOGLEVEL_DEBUG, sprintf("SyncObject->equals() items in array '%s' differ", $val)); |
| 107 | 107 | return false; |
| 108 | 108 | } |
| 109 | - } |
|
| 110 | - else { |
|
| 109 | + } else { |
|
| 111 | 110 | ZLog::Write(LOGLEVEL_DEBUG, sprintf("SyncObject->equals() array '%s' is set in one but not the other object", $val)); |
| 112 | 111 | return false; |
| 113 | 112 | } |
| 114 | - } |
|
| 115 | - else { |
|
| 113 | + } else { |
|
| 116 | 114 | if (isset($this->$val) && isset($odo->$val)) { |
| 117 | 115 | if ($strictTypeCompare){ |
| 118 | 116 | if ($this->$val !== $odo->$val){ |
@@ -125,11 +123,9 @@ discard block |
||
| 125 | 123 | return false; |
| 126 | 124 | } |
| 127 | 125 | } |
| 128 | - } |
|
| 129 | - else if (!isset($this->$val) && !isset($odo->$val)) { |
|
| 126 | + } else if (!isset($this->$val) && !isset($odo->$val)) { |
|
| 130 | 127 | continue; |
| 131 | - } |
|
| 132 | - else { |
|
| 128 | + } else { |
|
| 133 | 129 | ZLog::Write(LOGLEVEL_DEBUG, sprintf("SyncObject->equals() false because field '%s' is only defined at one obj: '%s' != '%s'", $val, Utils::PrintAsString(isset($this->$val)), Utils::PrintAsString(isset($odo->$val)))); |
| 134 | 130 | return false; |
| 135 | 131 | } |
@@ -148,27 +144,32 @@ discard block |
||
| 148 | 144 | $str = get_class($this) . " (\n"; |
| 149 | 145 | |
| 150 | 146 | $streamerVars = array(); |
| 151 | - foreach ($this->mapping as $k=>$v) |
|
| 152 | - $streamerVars[$v[self::STREAMER_VAR]] = (isset($v[self::STREAMER_TYPE]))?$v[self::STREAMER_TYPE]:false; |
|
| 147 | + foreach ($this->mapping as $k=>$v) { |
|
| 148 | + $streamerVars[$v[self::STREAMER_VAR]] = (isset($v[self::STREAMER_TYPE]))?$v[self::STREAMER_TYPE]:false; |
|
| 149 | + } |
|
| 153 | 150 | |
| 154 | 151 | foreach (get_object_vars($this) as $k=>$v) { |
| 155 | - if ($k == "mapping") continue; |
|
| 152 | + if ($k == "mapping") { |
|
| 153 | + continue; |
|
| 154 | + } |
|
| 156 | 155 | |
| 157 | - if (array_key_exists($k, $streamerVars)) |
|
| 158 | - $strV = "(S) "; |
|
| 159 | - else |
|
| 160 | - $strV = ""; |
|
| 156 | + if (array_key_exists($k, $streamerVars)) { |
|
| 157 | + $strV = "(S) "; |
|
| 158 | + } else { |
|
| 159 | + $strV = ""; |
|
| 160 | + } |
|
| 161 | 161 | |
| 162 | 162 | // self::STREAMER_ARRAY ? |
| 163 | 163 | if (is_array($v)) { |
| 164 | 164 | $str .= "\t". $strV . $k ."(Array) size: " . count($v) ."\n"; |
| 165 | - foreach ($v as $value) $str .= "\t\t". Utils::PrintAsString($value) ."\n"; |
|
| 166 | - } |
|
| 167 | - else if ($v instanceof SyncObject) { |
|
| 165 | + foreach ($v as $value) { |
|
| 166 | + $str .= "\t\t". Utils::PrintAsString($value) ."\n"; |
|
| 167 | + } |
|
| 168 | + } else if ($v instanceof SyncObject) { |
|
| 168 | 169 | $str .= "\t". $strV .$k ." => ". str_replace("\n", "\n\t\t\t", $v->__toString()) . "\n"; |
| 170 | + } else { |
|
| 171 | + $str .= "\t". $strV .$k ." => " . (isset($this->$k)? Utils::PrintAsString($this->$k) :"null") . "\n"; |
|
| 169 | 172 | } |
| 170 | - else |
|
| 171 | - $str .= "\t". $strV .$k ." => " . (isset($this->$k)? Utils::PrintAsString($this->$k) :"null") . "\n"; |
|
| 172 | 173 | } |
| 173 | 174 | $str .= ")"; |
| 174 | 175 | |
@@ -238,8 +239,9 @@ discard block |
||
| 238 | 239 | $defaultLogLevel = LOGLEVEL_WARN; |
| 239 | 240 | |
| 240 | 241 | // in some cases non-false checks should not provoke a WARN log but only a DEBUG log |
| 241 | - if ($logAsDebug) |
|
| 242 | - $defaultLogLevel = LOGLEVEL_DEBUG; |
|
| 242 | + if ($logAsDebug) { |
|
| 243 | + $defaultLogLevel = LOGLEVEL_DEBUG; |
|
| 244 | + } |
|
| 243 | 245 | |
| 244 | 246 | $objClass = get_class($this); |
| 245 | 247 | foreach ($this->mapping as $k=>$v) { |
@@ -247,13 +249,14 @@ discard block |
||
| 247 | 249 | // check sub-objects recursively |
| 248 | 250 | if (isset($v[self::STREAMER_TYPE]) && isset($this->{$v[self::STREAMER_VAR]})) { |
| 249 | 251 | if ($this->{$v[self::STREAMER_VAR]} instanceof SyncObject) { |
| 250 | - if (! $this->{$v[self::STREAMER_VAR]}->Check($logAsDebug)) |
|
| 251 | - return false; |
|
| 252 | - } |
|
| 253 | - else if (is_array($this->{$v[self::STREAMER_VAR]})) { |
|
| 254 | - foreach ($this->{$v[self::STREAMER_VAR]} as $subobj) |
|
| 255 | - if ($subobj instanceof SyncObject && !$subobj->Check($logAsDebug)) |
|
| 252 | + if (! $this->{$v[self::STREAMER_VAR]}->Check($logAsDebug)) { |
|
| 253 | + return false; |
|
| 254 | + } |
|
| 255 | + } else if (is_array($this->{$v[self::STREAMER_VAR]})) { |
|
| 256 | + foreach ($this->{$v[self::STREAMER_VAR]} as $subobj) { |
|
| 257 | + if ($subobj instanceof SyncObject && !$subobj->Check($logAsDebug)) |
|
| 256 | 258 | return false; |
| 259 | + } |
|
| 257 | 260 | } |
| 258 | 261 | } |
| 259 | 262 | |
@@ -329,11 +332,11 @@ discard block |
||
| 329 | 332 | else if (!isset($this->mapping[$condition])) { |
| 330 | 333 | ZLog::Write(LOGLEVEL_ERROR, sprintf("SyncObject->Check(): Can not compare parameter '%s' against the other value '%s' as it is not defined object from type %s. Please report this! Check skipped!", $objClass, $v[self::STREAMER_VAR], $condition)); |
| 331 | 334 | continue; |
| 332 | - } |
|
| 333 | - else { |
|
| 335 | + } else { |
|
| 334 | 336 | $cmpPar = $this->mapping[$condition][self::STREAMER_VAR]; |
| 335 | - if (isset($this->$cmpPar)) |
|
| 336 | - $cmp = $this->$cmpPar; |
|
| 337 | + if (isset($this->$cmpPar)) { |
|
| 338 | + $cmp = $this->$cmpPar; |
|
| 339 | + } |
|
| 337 | 340 | } |
| 338 | 341 | |
| 339 | 342 | if ($cmp === false) { |
@@ -361,9 +364,9 @@ discard block |
||
| 361 | 364 | if (is_array($this->{$v[self::STREAMER_VAR]})) { |
| 362 | 365 | // implosion takes 2bytes, so we just assume ", " here |
| 363 | 366 | $chkstr = implode(", ", $this->{$v[self::STREAMER_VAR]}); |
| 367 | + } else { |
|
| 368 | + $chkstr = $this->{$v[self::STREAMER_VAR]}; |
|
| 364 | 369 | } |
| 365 | - else |
|
| 366 | - $chkstr = $this->{$v[self::STREAMER_VAR]}; |
|
| 367 | 370 | |
| 368 | 371 | if (strlen($chkstr) > $condition) { |
| 369 | 372 | ZLog::Write(LOGLEVEL_WARN, sprintf("SyncObject->Check(): object from type %s: parameter '%s' is longer than %d. Check failed", $objClass, $v[self::STREAMER_VAR], $condition)); |
@@ -376,16 +379,16 @@ discard block |
||
| 376 | 379 | // if $condition is false then the check really fails. Otherwise invalid emails are removed. |
| 377 | 380 | // if nothing is left (all emails were false), the parameter is set to condition |
| 378 | 381 | if ($rule === self::STREAMER_CHECK_EMAIL && isset($this->{$v[self::STREAMER_VAR]})) { |
| 379 | - if ($condition === false && ( (is_array($this->{$v[self::STREAMER_VAR]}) && empty($this->{$v[self::STREAMER_VAR]})) || strlen($this->{$v[self::STREAMER_VAR]}) == 0) ) |
|
| 380 | - continue; |
|
| 382 | + if ($condition === false && ( (is_array($this->{$v[self::STREAMER_VAR]}) && empty($this->{$v[self::STREAMER_VAR]})) || strlen($this->{$v[self::STREAMER_VAR]}) == 0) ) { |
|
| 383 | + continue; |
|
| 384 | + } |
|
| 381 | 385 | |
| 382 | 386 | $as_array = false; |
| 383 | 387 | |
| 384 | 388 | if (is_array($this->{$v[self::STREAMER_VAR]})) { |
| 385 | 389 | $mails = $this->{$v[self::STREAMER_VAR]}; |
| 386 | 390 | $as_array = true; |
| 387 | - } |
|
| 388 | - else { |
|
| 391 | + } else { |
|
| 389 | 392 | $mails = array( $this->{$v[self::STREAMER_VAR]} ); |
| 390 | 393 | } |
| 391 | 394 | |
@@ -393,23 +396,26 @@ discard block |
||
| 393 | 396 | foreach ($mails as $mail) { |
| 394 | 397 | if (! Utils::CheckEmail($mail)) { |
| 395 | 398 | ZLog::Write(LOGLEVEL_WARN, sprintf("SyncObject->Check(): object from type %s: parameter '%s' contains an invalid email address '%s'. Address is removed.", $objClass, $v[self::STREAMER_VAR], $mail)); |
| 399 | + } else { |
|
| 400 | + $output[] = $mail; |
|
| 396 | 401 | } |
| 397 | - else |
|
| 398 | - $output[] = $mail; |
|
| 399 | 402 | } |
| 400 | 403 | if (count($mails) != count($output)) { |
| 401 | - if ($condition === false) |
|
| 402 | - return false; |
|
| 404 | + if ($condition === false) { |
|
| 405 | + return false; |
|
| 406 | + } |
|
| 403 | 407 | |
| 404 | 408 | // nothing left, use $condition as new value |
| 405 | - if (count($output) == 0) |
|
| 406 | - $output[] = $condition; |
|
| 409 | + if (count($output) == 0) { |
|
| 410 | + $output[] = $condition; |
|
| 411 | + } |
|
| 407 | 412 | |
| 408 | 413 | // if we are allowed to rewrite the attribute, we do that |
| 409 | - if ($as_array) |
|
| 410 | - $this->{$v[self::STREAMER_VAR]} = $output; |
|
| 411 | - else |
|
| 412 | - $this->{$v[self::STREAMER_VAR]} = $output[0]; |
|
| 414 | + if ($as_array) { |
|
| 415 | + $this->{$v[self::STREAMER_VAR]} = $output; |
|
| 416 | + } else { |
|
| 417 | + $this->{$v[self::STREAMER_VAR]} = $output[0]; |
|
| 418 | + } |
|
| 413 | 419 | } |
| 414 | 420 | }// end STREAMER_CHECK_EMAIL |
| 415 | 421 | |
@@ -137,11 +137,13 @@ |
||
| 137 | 137 | $ret = parent::Check($logAsDebug); |
| 138 | 138 | |
| 139 | 139 | // semantic checks general "turn off switch" |
| 140 | - if (defined("DO_SEMANTIC_CHECKS") && DO_SEMANTIC_CHECKS === false) |
|
| 141 | - return $ret; |
|
| 140 | + if (defined("DO_SEMANTIC_CHECKS") && DO_SEMANTIC_CHECKS === false) { |
|
| 141 | + return $ret; |
|
| 142 | + } |
|
| 142 | 143 | |
| 143 | - if (!$ret) |
|
| 144 | - return false; |
|
| 144 | + if (!$ret) { |
|
| 145 | + return false; |
|
| 146 | + } |
|
| 145 | 147 | |
| 146 | 148 | if (isset($this->start) && isset($this->until) && $this->until < $this->start) { |
| 147 | 149 | ZLog::Write(LOGLEVEL_WARN, sprintf("SyncObject->Check(): Unmet condition in object from type %s: parameter 'start' is HIGHER than 'until'. Check failed!", get_class($this) )); |
@@ -260,11 +260,13 @@ |
||
| 260 | 260 | $ret = parent::Check($logAsDebug); |
| 261 | 261 | |
| 262 | 262 | // semantic checks general "turn off switch" |
| 263 | - if (defined("DO_SEMANTIC_CHECKS") && DO_SEMANTIC_CHECKS === false) |
|
| 264 | - return $ret; |
|
| 263 | + if (defined("DO_SEMANTIC_CHECKS") && DO_SEMANTIC_CHECKS === false) { |
|
| 264 | + return $ret; |
|
| 265 | + } |
|
| 265 | 266 | |
| 266 | - if (!$ret) |
|
| 267 | - return false; |
|
| 267 | + if (!$ret) { |
|
| 268 | + return false; |
|
| 269 | + } |
|
| 268 | 270 | |
| 269 | 271 | if ($this->meetingstatus > 0) { |
| 270 | 272 | if (!isset($this->organizername) || !isset($this->organizeremail)) { |
@@ -58,8 +58,9 @@ discard block |
||
| 58 | 58 | if (! $hasRights) { |
| 59 | 59 | // delete the folder only if it was an additional folder before, else ignore it |
| 60 | 60 | $synchedfolder = $this->GetFolder($addFolder->serverid); |
| 61 | - if (isset($synchedfolder->NoBackendFolder) && $synchedfolder->NoBackendFolder == true) |
|
| 62 | - $this->ImportFolderDeletion($addFolder); |
|
| 61 | + if (isset($synchedfolder->NoBackendFolder) && $synchedfolder->NoBackendFolder == true) { |
|
| 62 | + $this->ImportFolderDeletion($addFolder); |
|
| 63 | + } |
|
| 63 | 64 | continue; |
| 64 | 65 | } |
| 65 | 66 | } |
@@ -85,8 +86,7 @@ discard block |
||
| 85 | 86 | ZLog::Write(LOGLEVEL_INFO, sprintf("ChangesMemoryWrapper->Config(AdditionalFolders) : previously synchronized folder '%s' is not to be synched anymore. Sending delete to mobile.", $folder->displayname)); |
| 86 | 87 | $this->ImportFolderDeletion($folder); |
| 87 | 88 | } |
| 88 | - } |
|
| 89 | - else { |
|
| 89 | + } else { |
|
| 90 | 90 | $folderIdsOnClient[] = $sid; |
| 91 | 91 | } |
| 92 | 92 | } |
@@ -173,8 +173,7 @@ discard block |
||
| 173 | 173 | public function ImportMessageDeletion($id, $asSoftDelete = false) { |
| 174 | 174 | if ($asSoftDelete === true) { |
| 175 | 175 | $this->changes[] = array(self::SOFTDELETION, $id); |
| 176 | - } |
|
| 177 | - else { |
|
| 176 | + } else { |
|
| 178 | 177 | $this->changes[] = array(self::DELETION, $id); |
| 179 | 178 | } |
| 180 | 179 | return true; |
@@ -303,12 +302,12 @@ discard block |
||
| 303 | 302 | $ret = $this->destinationImporter->ImportFolderDeletion($folder); |
| 304 | 303 | |
| 305 | 304 | // if the operation was successful, update the HierarchyCache |
| 306 | - if ($ret) |
|
| 307 | - $this->DelFolder($id); |
|
| 305 | + if ($ret) { |
|
| 306 | + $this->DelFolder($id); |
|
| 307 | + } |
|
| 308 | 308 | |
| 309 | 309 | return $ret; |
| 310 | - } |
|
| 311 | - else { |
|
| 310 | + } else { |
|
| 312 | 311 | // if this folder is not in the cache, the change does not need to be streamed to the mobile |
| 313 | 312 | if ($this->GetFolder($id)) { |
| 314 | 313 | |
@@ -363,8 +362,9 @@ discard block |
||
| 363 | 362 | $change = $this->changes[$this->step]; |
| 364 | 363 | |
| 365 | 364 | if ($change[0] == self::CHANGE) { |
| 366 | - if (! $this->GetFolder($change[1]->serverid, true)) |
|
| 367 | - $change[1]->flags = SYNC_NEWMESSAGE; |
|
| 365 | + if (! $this->GetFolder($change[1]->serverid, true)) { |
|
| 366 | + $change[1]->flags = SYNC_NEWMESSAGE; |
|
| 367 | + } |
|
| 368 | 368 | |
| 369 | 369 | $this->exportImporter->ImportFolderChange($change[1]); |
| 370 | 370 | } |
@@ -376,9 +376,9 @@ discard block |
||
| 376 | 376 | |
| 377 | 377 | // return progress array |
| 378 | 378 | return array("steps" => count($this->changes), "progress" => $this->step); |
| 379 | + } else { |
|
| 380 | + return false; |
|
| 379 | 381 | } |
| 380 | - else |
|
| 381 | - return false; |
|
| 382 | 382 | } |
| 383 | 383 | |
| 384 | 384 | /** |
@@ -29,16 +29,16 @@ discard block |
||
| 29 | 29 | * @access public |
| 30 | 30 | */ |
| 31 | 31 | public function __construct() { |
| 32 | - if (!isset($this->type) || !isset($this->allocate)) |
|
| 33 | - throw new FatalNotImplementedException(sprintf("Class InterProcessData can not be initialized. Subclass %s did not initialize type and allocable memory.", get_class($this))); |
|
| 32 | + if (!isset($this->type) || !isset($this->allocate)) { |
|
| 33 | + throw new FatalNotImplementedException(sprintf("Class InterProcessData can not be initialized. Subclass %s did not initialize type and allocable memory.", get_class($this))); |
|
| 34 | + } |
|
| 34 | 35 | |
| 35 | 36 | try { |
| 36 | 37 | // ZP-987: use an own mutex + storage key for each device on non-shared-memory IPC |
| 37 | 38 | // this method is not suitable for the TopCollector atm |
| 38 | 39 | $type = Request::GetDeviceID(); |
| 39 | 40 | $this->ipcProvider = ZPush::GetRedis(); |
| 40 | - } |
|
| 41 | - catch (Exception $e) { |
|
| 41 | + } catch (Exception $e) { |
|
| 42 | 42 | // ipcProvider could not initialise |
| 43 | 43 | ZLog::Write(LOGLEVEL_ERROR, sprintf("%s could not initialise IPC Redis provider: %s", get_class($this), $e->getMessage())); |
| 44 | 44 | } |
@@ -204,8 +204,7 @@ discard block |
||
| 204 | 204 | elseif ($doCas == "replace") { |
| 205 | 205 | if (!$rawdata) { |
| 206 | 206 | $ok = ($this->ipcProvider->get()->hset($key, $compKey, json_encode($data)) !== false); |
| 207 | - } |
|
| 208 | - else { |
|
| 207 | + } else { |
|
| 209 | 208 | $ok = $this->ipcProvider->CASHash($key, $compKey, $rawdata, json_encode($data)); |
| 210 | 209 | } |
| 211 | 210 | } |
@@ -251,16 +250,13 @@ discard block |
||
| 251 | 250 | if ($returnRaw) { |
| 252 | 251 | if ($_rawdata) { |
| 253 | 252 | return array(json_decode($_rawdata, true), $_rawdata); |
| 254 | - } |
|
| 255 | - else { |
|
| 253 | + } else { |
|
| 256 | 254 | return array(array(), false); |
| 257 | 255 | } |
| 258 | - } |
|
| 259 | - else { |
|
| 256 | + } else { |
|
| 260 | 257 | if ($_rawdata) { |
| 261 | 258 | return json_decode($_rawdata, true); |
| 262 | - } |
|
| 263 | - else { |
|
| 259 | + } else { |
|
| 264 | 260 | return array(); |
| 265 | 261 | } |
| 266 | 262 | } |
@@ -282,8 +278,7 @@ discard block |
||
| 282 | 278 | } |
| 283 | 279 | if (!$subkey) { |
| 284 | 280 | $_data[$devid][$user] = $_data; |
| 285 | - } |
|
| 286 | - else { |
|
| 281 | + } else { |
|
| 287 | 282 | if (!isset($_data[$devid][$user])){ |
| 288 | 283 | $_data[$devid][$user] = array(); |
| 289 | 284 | } |
@@ -67,8 +67,9 @@ discard block |
||
| 67 | 67 | * @return string/boolean false if no uuid/counter available |
| 68 | 68 | */ |
| 69 | 69 | public function GetSyncKey() { |
| 70 | - if (isset($this->uuid) && isset($this->uuidCounter)) |
|
| 71 | - return StateManager::BuildStateKey($this->uuid, $this->uuidCounter); |
|
| 70 | + if (isset($this->uuid) && isset($this->uuidCounter)) { |
|
| 71 | + return StateManager::BuildStateKey($this->uuid, $this->uuidCounter); |
|
| 72 | + } |
|
| 72 | 73 | |
| 73 | 74 | return false; |
| 74 | 75 | } |
@@ -124,9 +125,9 @@ discard block |
||
| 124 | 125 | if (!$this->HasSyncKey()) { |
| 125 | 126 | $this->uuid = $uuid; |
| 126 | 127 | $this->uuidCounter = $uuidNewCounter; |
| 128 | + } else if ($uuid !== $this->uuid) { |
|
| 129 | + throw new FatalException("SyncParameters->SetNewSyncKey(): new SyncKey must have the same UUID as current SyncKey"); |
|
| 127 | 130 | } |
| 128 | - else if ($uuid !== $this->uuid) |
|
| 129 | - throw new FatalException("SyncParameters->SetNewSyncKey(): new SyncKey must have the same UUID as current SyncKey"); |
|
| 130 | 131 | |
| 131 | 132 | $this->uuidNewCounter = $uuidNewCounter; |
| 132 | 133 | $this->counterconfirmed = false; |
@@ -142,8 +143,9 @@ discard block |
||
| 142 | 143 | * @return string/boolean returns false if uuid or counter are not available |
| 143 | 144 | */ |
| 144 | 145 | public function GetNewSyncKey() { |
| 145 | - if (isset($this->uuid) && isset($this->uuidNewCounter)) |
|
| 146 | - return StateManager::BuildStateKey($this->uuid, $this->uuidNewCounter); |
|
| 146 | + if (isset($this->uuid) && isset($this->uuidNewCounter)) { |
|
| 147 | + return StateManager::BuildStateKey($this->uuid, $this->uuidNewCounter); |
|
| 148 | + } |
|
| 147 | 149 | |
| 148 | 150 | return false; |
| 149 | 151 | } |
@@ -186,14 +188,17 @@ discard block |
||
| 186 | 188 | * @return boolean |
| 187 | 189 | */ |
| 188 | 190 | public function RemoveSyncKey() { |
| 189 | - if (isset($this->uuid)) |
|
| 190 | - unset($this->uuid); |
|
| 191 | + if (isset($this->uuid)) { |
|
| 192 | + unset($this->uuid); |
|
| 193 | + } |
|
| 191 | 194 | |
| 192 | - if (isset($this->uuidCounter)) |
|
| 193 | - unset($this->uuidCounter); |
|
| 195 | + if (isset($this->uuidCounter)) { |
|
| 196 | + unset($this->uuidCounter); |
|
| 197 | + } |
|
| 194 | 198 | |
| 195 | - if (isset($this->uuidNewCounter)) |
|
| 196 | - unset($this->uuidNewCounter); |
|
| 199 | + if (isset($this->uuidNewCounter)) { |
|
| 200 | + unset($this->uuidNewCounter); |
|
| 201 | + } |
|
| 197 | 202 | |
| 198 | 203 | ZLog::Write(LOGLEVEL_DEBUG, "SyncParameters->RemoveSyncKey(): saved sync key removed"); |
| 199 | 204 | return true; |
@@ -208,8 +213,7 @@ discard block |
||
| 208 | 213 | public function GetBackendFolderId() { |
| 209 | 214 | if ($this->backendfolderid) { |
| 210 | 215 | return $this->backendfolderid; |
| 211 | - } |
|
| 212 | - else { |
|
| 216 | + } else { |
|
| 213 | 217 | return $this->GetFolderId(); |
| 214 | 218 | } |
| 215 | 219 | } |
@@ -295,8 +299,7 @@ discard block |
||
| 295 | 299 | // if the backend returned false as folderstat, we have to run the exporter |
| 296 | 300 | if ($currentFolderStat === false || $this->confirmationChanged) { |
| 297 | 301 | $run = true; |
| 298 | - } |
|
| 299 | - else { |
|
| 302 | + } else { |
|
| 300 | 303 | // check if the folderstat differs from the saved one or expired |
| 301 | 304 | $run = ! ($this->HasFolderStat() && $currentFolderStat === $this->GetFolderStat() && time() < $this->GetFolderStatTimeout()); |
| 302 | 305 | } |
@@ -344,8 +347,9 @@ discard block |
||
| 344 | 347 | $options !== self::CONTACTOPTIONS && |
| 345 | 348 | $options !== self::NOTEOPTIONS && |
| 346 | 349 | $options !== self::TASKOPTIONS && |
| 347 | - $options !== self::SMSOPTIONS) |
|
| 348 | - throw new FatalNotImplementedException(sprintf("SyncParameters->isAllowedType('%s') ContentParameters is invalid. Such type is not available.", $options)); |
|
| 350 | + $options !== self::SMSOPTIONS) { |
|
| 351 | + throw new FatalNotImplementedException(sprintf("SyncParameters->isAllowedType('%s') ContentParameters is invalid. Such type is not available.", $options)); |
|
| 352 | + } |
|
| 349 | 353 | |
| 350 | 354 | return true; |
| 351 | 355 | } |
@@ -362,23 +366,25 @@ discard block |
||
| 362 | 366 | */ |
| 363 | 367 | private function normalizeType($options) { |
| 364 | 368 | // return the requested CPO as it is defined |
| 365 | - if (isset($this->contentParameters[$options])) |
|
| 366 | - return $options; |
|
| 369 | + if (isset($this->contentParameters[$options])) { |
|
| 370 | + return $options; |
|
| 371 | + } |
|
| 367 | 372 | |
| 368 | 373 | $returnCPO = $options; |
| 369 | 374 | // return email, calendar, contact or note CPO as default CPO if there no explicit default CPO defined |
| 370 | 375 | if ($options == self::DEFAULTOPTIONS && !isset($this->contentParameters[self::DEFAULTOPTIONS])) { |
| 371 | 376 | |
| 372 | - if (isset($this->contentParameters[self::EMAILOPTIONS])) |
|
| 373 | - $returnCPO = self::EMAILOPTIONS; |
|
| 374 | - elseif (isset($this->contentParameters[self::CALENDAROPTIONS])) |
|
| 375 | - $returnCPO = self::CALENDAROPTIONS; |
|
| 376 | - elseif (isset($this->contentParameters[self::CONTACTOPTIONS])) |
|
| 377 | - $returnCPO = self::CONTACTOPTIONS; |
|
| 378 | - elseif (isset($this->contentParameters[self::NOTEOPTIONS])) |
|
| 379 | - $returnCPO = self::NOTEOPTIONS; |
|
| 380 | - elseif (isset($this->contentParameters[self::TASKOPTIONS])) |
|
| 381 | - $returnCPO = self::TASKOPTIONS; |
|
| 377 | + if (isset($this->contentParameters[self::EMAILOPTIONS])) { |
|
| 378 | + $returnCPO = self::EMAILOPTIONS; |
|
| 379 | + } elseif (isset($this->contentParameters[self::CALENDAROPTIONS])) { |
|
| 380 | + $returnCPO = self::CALENDAROPTIONS; |
|
| 381 | + } elseif (isset($this->contentParameters[self::CONTACTOPTIONS])) { |
|
| 382 | + $returnCPO = self::CONTACTOPTIONS; |
|
| 383 | + } elseif (isset($this->contentParameters[self::NOTEOPTIONS])) { |
|
| 384 | + $returnCPO = self::NOTEOPTIONS; |
|
| 385 | + } elseif (isset($this->contentParameters[self::TASKOPTIONS])) { |
|
| 386 | + $returnCPO = self::TASKOPTIONS; |
|
| 387 | + } |
|
| 382 | 388 | |
| 383 | 389 | return $returnCPO; |
| 384 | 390 | } |
@@ -60,8 +60,7 @@ discard block |
||
| 60 | 60 | } |
| 61 | 61 | } |
| 62 | 62 | return true; |
| 63 | - } |
|
| 64 | - catch (ZPushException $e) {} |
|
| 63 | + } catch (ZPushException $e) {} |
|
| 65 | 64 | return false; |
| 66 | 65 | } |
| 67 | 66 | |
@@ -109,20 +108,24 @@ discard block |
||
| 109 | 108 | |
| 110 | 109 | $invalidStates = false; |
| 111 | 110 | foreach($this->stateManager->GetSynchedFolders() as $folderid) { |
| 112 | - if ($overwriteLoaded === false && isset($this->collections[$folderid])) |
|
| 113 | - continue; |
|
| 111 | + if ($overwriteLoaded === false && isset($this->collections[$folderid])) { |
|
| 112 | + continue; |
|
| 113 | + } |
|
| 114 | 114 | |
| 115 | 115 | // Load Collection! |
| 116 | - if (! $this->LoadCollection($folderid, $loadState, $checkPermissions, $confirmedOnly)) |
|
| 117 | - $invalidStates = true; |
|
| 116 | + if (! $this->LoadCollection($folderid, $loadState, $checkPermissions, $confirmedOnly)) { |
|
| 117 | + $invalidStates = true; |
|
| 118 | + } |
|
| 118 | 119 | } |
| 119 | 120 | |
| 120 | 121 | // load the hierarchy data - there are no permissions to verify so we just set it to false |
| 121 | - if ($loadHierarchy && !$this->LoadCollection(false, $loadState, false, false)) |
|
| 122 | - throw new StatusException("Invalid states found while loading hierarchy data. Forcing hierarchy sync"); |
|
| 122 | + if ($loadHierarchy && !$this->LoadCollection(false, $loadState, false, false)) { |
|
| 123 | + throw new StatusException("Invalid states found while loading hierarchy data. Forcing hierarchy sync"); |
|
| 124 | + } |
|
| 123 | 125 | |
| 124 | - if ($invalidStates) |
|
| 125 | - throw new StateInvalidException("Invalid states found while loading collections. Forcing sync"); |
|
| 126 | + if ($invalidStates) { |
|
| 127 | + throw new StateInvalidException("Invalid states found while loading collections. Forcing sync"); |
|
| 128 | + } |
|
| 126 | 129 | |
| 127 | 130 | return true; |
| 128 | 131 | } |
@@ -159,8 +162,7 @@ discard block |
||
| 159 | 162 | ZLog::Write(LOGLEVEL_DEBUG, "SyncCollections->LoadCollection(): Found collection with move state only, ignoring."); |
| 160 | 163 | return true; |
| 161 | 164 | } |
| 162 | - } |
|
| 163 | - catch (StateInvalidException $sive) { |
|
| 165 | + } catch (StateInvalidException $sive) { |
|
| 164 | 166 | // in case there is something wrong with the state, just stop here |
| 165 | 167 | // later when trying to retrieve the SyncParameters nothing will be found |
| 166 | 168 | |
@@ -175,8 +177,9 @@ discard block |
||
| 175 | 177 | } |
| 176 | 178 | |
| 177 | 179 | // if this is an additional folder the backend has to be setup correctly |
| 178 | - if ($checkPermissions === true && ! ZPush::GetBackend()->Setup(ZPush::GetAdditionalSyncFolderStore($spa->GetBackendFolderId()))) |
|
| 179 | - throw new StatusException(sprintf("SyncCollections->LoadCollection(): could not Setup() the backend for folder id %s/%s", $spa->GetFolderId(), $spa->GetBackendFolderId()), self::ERROR_WRONG_HIERARCHY); |
|
| 180 | + if ($checkPermissions === true && ! ZPush::GetBackend()->Setup(ZPush::GetAdditionalSyncFolderStore($spa->GetBackendFolderId()))) { |
|
| 181 | + throw new StatusException(sprintf("SyncCollections->LoadCollection(): could not Setup() the backend for folder id %s/%s", $spa->GetFolderId(), $spa->GetBackendFolderId()), self::ERROR_WRONG_HIERARCHY); |
|
| 182 | + } |
|
| 180 | 183 | |
| 181 | 184 | // add collection to object |
| 182 | 185 | $addStatus = $this->AddCollection($spa); |
@@ -186,8 +189,7 @@ discard block |
||
| 186 | 189 | try { |
| 187 | 190 | // make sure the hierarchy cache is loaded when we are loading hierarchy states |
| 188 | 191 | $this->addparms[$folderid]["state"] = $this->stateManager->GetSyncState($spa->GetLatestSyncKey($confirmedOnly), ($folderid === false)); |
| 189 | - } |
|
| 190 | - catch (StateNotFoundException $snfe) { |
|
| 192 | + } catch (StateNotFoundException $snfe) { |
|
| 191 | 193 | // if we can't find the state, first we should try a sync of that folder, so |
| 192 | 194 | // we generate a fake change, so a sync on this folder is triggered |
| 193 | 195 | $this->changes[$folderid] = 1; |
@@ -211,20 +213,23 @@ discard block |
||
| 211 | 213 | * @return boolean |
| 212 | 214 | */ |
| 213 | 215 | public function SaveCollection($spa) { |
| 214 | - if (! $this->saveData || !$spa->HasFolderId()) |
|
| 215 | - return false; |
|
| 216 | + if (! $this->saveData || !$spa->HasFolderId()) { |
|
| 217 | + return false; |
|
| 218 | + } |
|
| 216 | 219 | |
| 217 | 220 | if ($spa->IsDataChanged()) { |
| 218 | 221 | $this->loadStateManager(); |
| 219 | 222 | ZLog::Write(LOGLEVEL_DEBUG, sprintf("SyncCollections->SaveCollection(): Data of folder '%s' changed", $spa->GetFolderId())); |
| 220 | 223 | |
| 221 | 224 | // save new windowsize |
| 222 | - if (isset($this->globalWindowSize)) |
|
| 223 | - $spa->SetWindowSize($this->globalWindowSize); |
|
| 225 | + if (isset($this->globalWindowSize)) { |
|
| 226 | + $spa->SetWindowSize($this->globalWindowSize); |
|
| 227 | + } |
|
| 224 | 228 | |
| 225 | 229 | // update latest lifetime |
| 226 | - if (isset($this->refLifetime)) |
|
| 227 | - $spa->SetReferenceLifetime($this->refLifetime); |
|
| 230 | + if (isset($this->refLifetime)) { |
|
| 231 | + $spa->SetReferenceLifetime($this->refLifetime); |
|
| 232 | + } |
|
| 228 | 233 | |
| 229 | 234 | return $this->stateManager->SetSynchedFolderState($spa); |
| 230 | 235 | } |
@@ -240,8 +245,9 @@ discard block |
||
| 240 | 245 | * @return boolean |
| 241 | 246 | */ |
| 242 | 247 | public function AddCollection($spa) { |
| 243 | - if (! $spa->HasFolderId()) |
|
| 244 | - return false; |
|
| 248 | + if (! $spa->HasFolderId()) { |
|
| 249 | + return false; |
|
| 250 | + } |
|
| 245 | 251 | |
| 246 | 252 | $this->collections[$spa->GetFolderId()] = $spa; |
| 247 | 253 | |
@@ -250,12 +256,14 @@ discard block |
||
| 250 | 256 | $this->lastSyncTime = $spa->GetLastSyncTime(); |
| 251 | 257 | |
| 252 | 258 | // use SyncParameters PolicyKey as reference if available |
| 253 | - if ($spa->HasReferencePolicyKey()) |
|
| 254 | - $this->refPolicyKey = $spa->GetReferencePolicyKey(); |
|
| 259 | + if ($spa->HasReferencePolicyKey()) { |
|
| 260 | + $this->refPolicyKey = $spa->GetReferencePolicyKey(); |
|
| 261 | + } |
|
| 255 | 262 | |
| 256 | 263 | // use SyncParameters LifeTime as reference if available |
| 257 | - if ($spa->HasReferenceLifetime()) |
|
| 258 | - $this->refLifetime = $spa->GetReferenceLifetime(); |
|
| 264 | + if ($spa->HasReferenceLifetime()) { |
|
| 265 | + $this->refLifetime = $spa->GetReferenceLifetime(); |
|
| 266 | + } |
|
| 259 | 267 | |
| 260 | 268 | ZLog::Write(LOGLEVEL_DEBUG, sprintf("SyncCollections->AddCollection(): Updated reference PolicyKey '%s', reference Lifetime '%s', Last sync at '%s'", $this->refPolicyKey, $this->refLifetime, $this->lastSyncTime)); |
| 261 | 269 | } |
@@ -272,10 +280,11 @@ discard block |
||
| 272 | 280 | * @return SyncParameters / boolean false if no SyncParameters object is found for folderid |
| 273 | 281 | */ |
| 274 | 282 | public function GetCollection($folderid) { |
| 275 | - if (isset($this->collections[$folderid])) |
|
| 276 | - return $this->collections[$folderid]; |
|
| 277 | - else |
|
| 278 | - return false; |
|
| 283 | + if (isset($this->collections[$folderid])) { |
|
| 284 | + return $this->collections[$folderid]; |
|
| 285 | + } else { |
|
| 286 | + return false; |
|
| 287 | + } |
|
| 279 | 288 | } |
| 280 | 289 | |
| 281 | 290 | /** |
@@ -309,12 +318,14 @@ discard block |
||
| 309 | 318 | * @return boolean |
| 310 | 319 | */ |
| 311 | 320 | public function AddParameter($spa, $key, $value) { |
| 312 | - if (!$spa->HasFolderId()) |
|
| 313 | - return false; |
|
| 321 | + if (!$spa->HasFolderId()) { |
|
| 322 | + return false; |
|
| 323 | + } |
|
| 314 | 324 | |
| 315 | 325 | $folderid = $spa->GetFolderId(); |
| 316 | - if (!isset($this->addparms[$folderid])) |
|
| 317 | - $this->addparms[$folderid] = array(); |
|
| 326 | + if (!isset($this->addparms[$folderid])) { |
|
| 327 | + $this->addparms[$folderid] = array(); |
|
| 328 | + } |
|
| 318 | 329 | |
| 319 | 330 | $this->addparms[$folderid][$key] = $value; |
| 320 | 331 | return true; |
@@ -330,13 +341,15 @@ discard block |
||
| 330 | 341 | * @return mixed returns 'null' if nothing set |
| 331 | 342 | */ |
| 332 | 343 | public function GetParameter($spa, $key) { |
| 333 | - if (!$spa->HasFolderId()) |
|
| 334 | - return null; |
|
| 344 | + if (!$spa->HasFolderId()) { |
|
| 345 | + return null; |
|
| 346 | + } |
|
| 335 | 347 | |
| 336 | - if (isset($this->addparms[$spa->GetFolderId()]) && isset($this->addparms[$spa->GetFolderId()][$key])) |
|
| 337 | - return $this->addparms[$spa->GetFolderId()][$key]; |
|
| 338 | - else |
|
| 339 | - return null; |
|
| 348 | + if (isset($this->addparms[$spa->GetFolderId()]) && isset($this->addparms[$spa->GetFolderId()][$key])) { |
|
| 349 | + return $this->addparms[$spa->GetFolderId()][$key]; |
|
| 350 | + } else { |
|
| 351 | + return null; |
|
| 352 | + } |
|
| 340 | 353 | } |
| 341 | 354 | |
| 342 | 355 | /** |
@@ -375,8 +388,7 @@ discard block |
||
| 375 | 388 | // take the requested global windowsize or the max 512 if not defined |
| 376 | 389 | if (isset($this->globalWindowSize)) { |
| 377 | 390 | $globalWindowSize = $this->globalWindowSize; |
| 378 | - } |
|
| 379 | - else { |
|
| 391 | + } else { |
|
| 380 | 392 | $globalWindowSize = WINDOW_SIZE_MAX; // 512 by default |
| 381 | 393 | } |
| 382 | 394 | |
@@ -452,28 +464,31 @@ discard block |
||
| 452 | 464 | public function CheckForChanges($lifetime = 600, $interval = 30, $onlyPingable = false) { |
| 453 | 465 | $classes = array(); |
| 454 | 466 | foreach ($this->collections as $folderid => $spa){ |
| 455 | - if ($onlyPingable && $spa->GetPingableFlag() !== true || ! $folderid) |
|
| 456 | - continue; |
|
| 467 | + if ($onlyPingable && $spa->GetPingableFlag() !== true || ! $folderid) { |
|
| 468 | + continue; |
|
| 469 | + } |
|
| 457 | 470 | |
| 458 | 471 | $class = $this->getPingClass($spa); |
| 459 | 472 | |
| 460 | - if (!isset($classes[$class])) |
|
| 461 | - $classes[$class] = 0; |
|
| 473 | + if (!isset($classes[$class])) { |
|
| 474 | + $classes[$class] = 0; |
|
| 475 | + } |
|
| 462 | 476 | $classes[$class] += 1; |
| 463 | 477 | } |
| 464 | - if (empty($classes)) |
|
| 465 | - $checkClasses = "policies only"; |
|
| 466 | - else if (array_sum($classes) > 4) { |
|
| 478 | + if (empty($classes)) { |
|
| 479 | + $checkClasses = "policies only"; |
|
| 480 | + } else if (array_sum($classes) > 4) { |
|
| 467 | 481 | $checkClasses = ""; |
| 468 | 482 | foreach($classes as $class=>$count) { |
| 469 | - if ($count == 1) |
|
| 470 | - $checkClasses .= sprintf("%s ", $class); |
|
| 471 | - else |
|
| 472 | - $checkClasses .= sprintf("%s(%d) ", $class, $count); |
|
| 483 | + if ($count == 1) { |
|
| 484 | + $checkClasses .= sprintf("%s ", $class); |
|
| 485 | + } else { |
|
| 486 | + $checkClasses .= sprintf("%s(%d) ", $class, $count); |
|
| 487 | + } |
|
| 473 | 488 | } |
| 489 | + } else { |
|
| 490 | + $checkClasses = implode(" ", array_keys($classes)); |
|
| 474 | 491 | } |
| 475 | - else |
|
| 476 | - $checkClasses = implode(" ", array_keys($classes)); |
|
| 477 | 492 | |
| 478 | 493 | $pingTracking = new PingTracking(); |
| 479 | 494 | $this->changes = array(); |
@@ -489,8 +504,9 @@ discard block |
||
| 489 | 504 | if (!empty($classes)) { |
| 490 | 505 | // initialize all possible folders |
| 491 | 506 | foreach ($this->collections as $folderid => $spa) { |
| 492 | - if (($onlyPingable && $spa->GetPingableFlag() !== true) || ! $folderid) |
|
| 493 | - continue; |
|
| 507 | + if (($onlyPingable && $spa->GetPingableFlag() !== true) || ! $folderid) { |
|
| 508 | + continue; |
|
| 509 | + } |
|
| 494 | 510 | |
| 495 | 511 | $backendFolderId = $spa->GetBackendFolderId(); |
| 496 | 512 | |
@@ -500,8 +516,9 @@ discard block |
||
| 500 | 516 | // initialize sink if no immediate changes were found so far |
| 501 | 517 | if ($changesSink && empty($this->changes)) { |
| 502 | 518 | ZPush::GetBackend()->Setup($store); |
| 503 | - if (! ZPush::GetBackend()->ChangesSinkInitialize($backendFolderId)) |
|
| 504 | - throw new StatusException(sprintf("Error initializing ChangesSink for folder id %s/%s", $folderid, $backendFolderId), self::ERROR_WRONG_HIERARCHY); |
|
| 519 | + if (! ZPush::GetBackend()->ChangesSinkInitialize($backendFolderId)) { |
|
| 520 | + throw new StatusException(sprintf("Error initializing ChangesSink for folder id %s/%s", $folderid, $backendFolderId), self::ERROR_WRONG_HIERARCHY); |
|
| 521 | + } |
|
| 505 | 522 | } |
| 506 | 523 | |
| 507 | 524 | // check if the folder stat changed since the last sync, if so generate a change for it (only on first run) |
@@ -533,18 +550,21 @@ discard block |
||
| 533 | 550 | |
| 534 | 551 | $nextInterval = $interval; |
| 535 | 552 | // we should not block longer than the lifetime |
| 536 | - if ($endat - $now < $nextInterval) |
|
| 537 | - $nextInterval = $endat - $now; |
|
| 553 | + if ($endat - $now < $nextInterval) { |
|
| 554 | + $nextInterval = $endat - $now; |
|
| 555 | + } |
|
| 538 | 556 | |
| 539 | 557 | // Check if provisioning is necessary |
| 540 | 558 | // if a PolicyKey was sent use it. If not, compare with the ReferencePolicyKey |
| 541 | - if (PROVISIONING === true && $policyKey !== false && ZPush::GetProvisioningManager()->ProvisioningRequired($policyKey, true, false)) |
|
| 542 | - // the hierarchysync forces provisioning |
|
| 559 | + if (PROVISIONING === true && $policyKey !== false && ZPush::GetProvisioningManager()->ProvisioningRequired($policyKey, true, false)) { |
|
| 560 | + // the hierarchysync forces provisioning |
|
| 543 | 561 | throw new StatusException("SyncCollections->CheckForChanges(): Policies or PolicyKey changed. Provisioning required.", self::ERROR_WRONG_HIERARCHY); |
| 562 | + } |
|
| 544 | 563 | |
| 545 | 564 | // Check if a hierarchy sync is necessary |
| 546 | - if ($this->countHierarchyChange()) |
|
| 547 | - throw new StatusException("SyncCollections->CheckForChanges(): HierarchySync required.", self::HIERARCHY_CHANGED); |
|
| 565 | + if ($this->countHierarchyChange()) { |
|
| 566 | + throw new StatusException("SyncCollections->CheckForChanges(): HierarchySync required.", self::HIERARCHY_CHANGED); |
|
| 567 | + } |
|
| 548 | 568 | |
| 549 | 569 | // Check if there are newer requests |
| 550 | 570 | // If so, this process should be terminated if more than 60 secs to go |
@@ -577,8 +597,7 @@ discard block |
||
| 577 | 597 | if ($this->countHierarchyChange(true)) { |
| 578 | 598 | throw new StatusException("SyncCollections->CheckForChanges(): HierarchySync required.", self::HIERARCHY_CHANGED); |
| 579 | 599 | } |
| 580 | - } |
|
| 581 | - else { |
|
| 600 | + } else { |
|
| 582 | 601 | // the backend will notify on the backend folderid |
| 583 | 602 | $folderid = ZPush::GetDeviceManager()->GetFolderIdForBackendId($backendFolderId); |
| 584 | 603 | |
@@ -587,14 +606,14 @@ discard block |
||
| 587 | 606 | ZLog::Write(LOGLEVEL_DEBUG, sprintf("SyncCollections->CheckForChanges(): Notification received on folder '%s'", $folderid)); |
| 588 | 607 | $validNotifications = true; |
| 589 | 608 | $this->waitingTime = time()-$started; |
| 590 | - } |
|
| 591 | - else { |
|
| 609 | + } else { |
|
| 592 | 610 | ZLog::Write(LOGLEVEL_DEBUG, sprintf("SyncCollections->CheckForChanges(): Notification received on folder '%s', but it is not relevant", $folderid)); |
| 593 | 611 | } |
| 594 | 612 | } |
| 595 | 613 | } |
| 596 | - if ($validNotifications) |
|
| 597 | - return true; |
|
| 614 | + if ($validNotifications) { |
|
| 615 | + return true; |
|
| 616 | + } |
|
| 598 | 617 | } |
| 599 | 618 | // use polling mechanism |
| 600 | 619 | else { |
@@ -602,8 +621,7 @@ discard block |
||
| 602 | 621 | if ($this->CountChanges($onlyPingable)) { |
| 603 | 622 | ZLog::Write(LOGLEVEL_DEBUG, sprintf("SyncCollections->CheckForChanges(): Found changes polling")); |
| 604 | 623 | return true; |
| 605 | - } |
|
| 606 | - else { |
|
| 624 | + } else { |
|
| 607 | 625 | sleep($nextInterval); |
| 608 | 626 | } |
| 609 | 627 | } // end polling |
@@ -625,14 +643,17 @@ discard block |
||
| 625 | 643 | public function CountChanges($onlyPingable = false) { |
| 626 | 644 | $changesAvailable = false; |
| 627 | 645 | foreach ($this->collections as $folderid => $spa) { |
| 628 | - if ($onlyPingable && $spa->GetPingableFlag() !== true) |
|
| 629 | - continue; |
|
| 646 | + if ($onlyPingable && $spa->GetPingableFlag() !== true) { |
|
| 647 | + continue; |
|
| 648 | + } |
|
| 630 | 649 | |
| 631 | - if (isset($this->addparms[$spa->GetFolderId()]["status"]) && $this->addparms[$spa->GetFolderId()]["status"] != SYNC_STATUS_SUCCESS) |
|
| 632 | - continue; |
|
| 650 | + if (isset($this->addparms[$spa->GetFolderId()]["status"]) && $this->addparms[$spa->GetFolderId()]["status"] != SYNC_STATUS_SUCCESS) { |
|
| 651 | + continue; |
|
| 652 | + } |
|
| 633 | 653 | |
| 634 | - if ($this->CountChange($folderid)) |
|
| 635 | - $changesAvailable = true; |
|
| 654 | + if ($this->CountChange($folderid)) { |
|
| 655 | + $changesAvailable = true; |
|
| 656 | + } |
|
| 636 | 657 | } |
| 637 | 658 | |
| 638 | 659 | return $changesAvailable; |
@@ -667,11 +688,11 @@ discard block |
||
| 667 | 688 | $exporter->ConfigContentParameters($spa->GetCPO()); |
| 668 | 689 | $ret = $exporter->InitializeExporter($importer); |
| 669 | 690 | |
| 670 | - if ($ret !== false) |
|
| 671 | - $changecount = $exporter->GetChangeCount(); |
|
| 691 | + if ($ret !== false) { |
|
| 692 | + $changecount = $exporter->GetChangeCount(); |
|
| 693 | + } |
|
| 672 | 694 | } |
| 673 | - } |
|
| 674 | - catch (StatusException $ste) { |
|
| 695 | + } catch (StatusException $ste) { |
|
| 675 | 696 | if ($ste->getCode() == SYNC_STATUS_FOLDERHIERARCHYCHANGED) { |
| 676 | 697 | ZLog::Write(LOGLEVEL_WARN, "SyncCollections->CountChange(): exporter can not be re-configured due to state error, emulating change in folder to force Sync."); |
| 677 | 698 | $this->changes[$folderid] = 1; |
@@ -684,8 +705,9 @@ discard block |
||
| 684 | 705 | } |
| 685 | 706 | |
| 686 | 707 | // start over if exporter can not be configured atm |
| 687 | - if ($changecount === false) |
|
| 688 | - ZLog::Write(LOGLEVEL_WARN, "SyncCollections->CountChange(): no changes received from Exporter."); |
|
| 708 | + if ($changecount === false) { |
|
| 709 | + ZLog::Write(LOGLEVEL_WARN, "SyncCollections->CountChange(): no changes received from Exporter."); |
|
| 710 | + } |
|
| 689 | 711 | |
| 690 | 712 | $this->changes[$folderid] = $changecount; |
| 691 | 713 | |
@@ -714,8 +736,9 @@ discard block |
||
| 714 | 736 | if ($exportChanges || $this->hierarchyExporterChecked === false) { |
| 715 | 737 | try { |
| 716 | 738 | // if this is a validation (not first run), make sure to load the hierarchy data again |
| 717 | - if ($this->hierarchyExporterChecked === true && !$this->LoadCollection(false, true, false)) |
|
| 718 | - throw new StatusException("Invalid states found while re-loading hierarchy data."); |
|
| 739 | + if ($this->hierarchyExporterChecked === true && !$this->LoadCollection(false, true, false)) { |
|
| 740 | + throw new StatusException("Invalid states found while re-loading hierarchy data."); |
|
| 741 | + } |
|
| 719 | 742 | |
| 720 | 743 | |
| 721 | 744 | $changesMem = ZPush::GetDeviceManager()->GetHierarchyChangesWrapper(); |
@@ -730,19 +753,20 @@ discard block |
||
| 730 | 753 | $ret = $exporter->InitializeExporter($changesMem); |
| 731 | 754 | while(is_array($exporter->Synchronize())); |
| 732 | 755 | |
| 733 | - if ($ret !== false) |
|
| 734 | - $changecount = $changesMem->GetChangeCount(); |
|
| 756 | + if ($ret !== false) { |
|
| 757 | + $changecount = $changesMem->GetChangeCount(); |
|
| 758 | + } |
|
| 735 | 759 | |
| 736 | 760 | $this->hierarchyExporterChecked = true; |
| 737 | 761 | } |
| 738 | - } |
|
| 739 | - catch (StatusException $ste) { |
|
| 762 | + } catch (StatusException $ste) { |
|
| 740 | 763 | throw new StatusException("SyncCollections->countHierarchyChange(): exporter can not be re-configured.", self::ERROR_WRONG_HIERARCHY, null, LOGLEVEL_WARN); |
| 741 | 764 | } |
| 742 | 765 | |
| 743 | 766 | // start over if exporter can not be configured atm |
| 744 | - if ($changecount === false ) |
|
| 745 | - ZLog::Write(LOGLEVEL_WARN, "SyncCollections->countHierarchyChange(): no changes received from Exporter."); |
|
| 767 | + if ($changecount === false ) { |
|
| 768 | + ZLog::Write(LOGLEVEL_WARN, "SyncCollections->countHierarchyChange(): no changes received from Exporter."); |
|
| 769 | + } |
|
| 746 | 770 | } |
| 747 | 771 | return ($changecount > 0); |
| 748 | 772 | } |
@@ -874,8 +898,9 @@ discard block |
||
| 874 | 898 | * @return |
| 875 | 899 | */ |
| 876 | 900 | private function loadStateManager() { |
| 877 | - if (!isset($this->stateManager)) |
|
| 878 | - $this->stateManager = ZPush::GetDeviceManager()->GetStateManager(); |
|
| 901 | + if (!isset($this->stateManager)) { |
|
| 902 | + $this->stateManager = ZPush::GetDeviceManager()->GetStateManager(); |
|
| 903 | + } |
|
| 879 | 904 | } |
| 880 | 905 | |
| 881 | 906 | /** |