Commit d5bbc069 authored by mku's avatar mku

ZP-191 #comment Upgrade from 1.5 to 2.0 gives multiple WBXML errors on GetItemEstimate #time 30m

git-svn-id: https://z-push.org/svn/z-push/trunk@1481 b7dd7b3b-3a3c-0410-9da9-bee62a6cc5b5
parent 7f8e5ee1
...@@ -66,7 +66,8 @@ class GetItemEstimate extends RequestProcessor { ...@@ -66,7 +66,8 @@ class GetItemEstimate extends RequestProcessor {
$spa = new SyncParameters(); $spa = new SyncParameters();
$spastatus = false; $spastatus = false;
if (Request::GetProtocolVersion() >= 14.0) { // read the folder properties
while (1) {
if(self::$decoder->getElementStartTag(SYNC_SYNCKEY)) { if(self::$decoder->getElementStartTag(SYNC_SYNCKEY)) {
try { try {
$spa->SetSyncKey(self::$decoder->getElementContent()); $spa->SetSyncKey(self::$decoder->getElementContent());
...@@ -79,7 +80,7 @@ class GetItemEstimate extends RequestProcessor { ...@@ -79,7 +80,7 @@ class GetItemEstimate extends RequestProcessor {
return false; return false;
} }
if(self::$decoder->getElementStartTag(SYNC_GETITEMESTIMATE_FOLDERID)) { elseif(self::$decoder->getElementStartTag(SYNC_GETITEMESTIMATE_FOLDERID)) {
$spa->SetFolderId( self::$decoder->getElementContent()); $spa->SetFolderId( self::$decoder->getElementContent());
if(!self::$decoder->getElementEndTag()) if(!self::$decoder->getElementEndTag())
...@@ -87,7 +88,7 @@ class GetItemEstimate extends RequestProcessor { ...@@ -87,7 +88,7 @@ class GetItemEstimate extends RequestProcessor {
} }
// conversation mode requested // conversation mode requested
if(self::$decoder->getElementStartTag(SYNC_CONVERSATIONMODE)) { elseif(self::$decoder->getElementStartTag(SYNC_CONVERSATIONMODE)) {
$spa->SetConversationMode(true); $spa->SetConversationMode(true);
if(($conversationmode = self::$decoder->getElementContent()) !== false) { if(($conversationmode = self::$decoder->getElementContent()) !== false) {
$spa->SetConversationMode((boolean)$conversationmode); $spa->SetConversationMode((boolean)$conversationmode);
...@@ -96,7 +97,7 @@ class GetItemEstimate extends RequestProcessor { ...@@ -96,7 +97,7 @@ class GetItemEstimate extends RequestProcessor {
} }
} }
if(self::$decoder->getElementStartTag(SYNC_OPTIONS)) { elseif(self::$decoder->getElementStartTag(SYNC_OPTIONS)) {
while(1) { while(1) {
if(self::$decoder->getElementStartTag(SYNC_FILTERTYPE)) { if(self::$decoder->getElementStartTag(SYNC_FILTERTYPE)) {
$spa->SetFilterType(self::$decoder->getElementContent()); $spa->SetFilterType(self::$decoder->getElementContent());
...@@ -123,48 +124,29 @@ class GetItemEstimate extends RequestProcessor { ...@@ -123,48 +124,29 @@ class GetItemEstimate extends RequestProcessor {
} }
} }
} }
}
else {
//get items estimate does not necessarily send the folder type
if(self::$decoder->getElementStartTag(SYNC_GETITEMESTIMATE_FOLDERTYPE)) {
$spa->SetContentClass(self::$decoder->getElementContent());
if(!self::$decoder->getElementEndTag())
return false;
}
if(self::$decoder->getElementStartTag(SYNC_GETITEMESTIMATE_FOLDERID)) { // get items estimate does not necessarily send the folder type
$spa->SetFolderId(self::$decoder->getElementContent()); elseif(self::$decoder->getElementStartTag(SYNC_GETITEMESTIMATE_FOLDERTYPE)) {
$spa->SetContentClass(self::$decoder->getElementContent());
if(!self::$decoder->getElementEndTag()) if(!self::$decoder->getElementEndTag())
return false; return false;
} }
if(!self::$decoder->getElementStartTag(SYNC_FILTERTYPE)) //TODO AS 2.5 and filtertype not set
return false; elseif(self::$decoder->getElementStartTag(SYNC_FILTERTYPE)) {
$spa->SetFilterType(self::$decoder->getElementContent()); $spa->SetFilterType(self::$decoder->getElementContent());
if(!self::$decoder->getElementEndTag()) if(!self::$decoder->getElementEndTag())
return false; return false;
if(!self::$decoder->getElementStartTag(SYNC_SYNCKEY))
return false;
try {
$spa->SetSyncKey(self::$decoder->getElementContent());
}
catch (StateInvalidException $siex) {
$spastatus = SYNC_GETITEMESTSTATUS_SYNCSTATENOTPRIMED;
} }
if(!self::$decoder->getElementEndTag()) $e = self::$decoder->peek();
return false; if($e[EN_TYPE] == EN_TYPE_ENDTAG) {
self::$decoder->getElementEndTag(); //SYNC_GETITEMESTIMATE_FOLDER
break;
}
} }
if(!self::$decoder->getElementEndTag())
return false; //SYNC_GETITEMESTIMATE_FOLDER
// Process folder data // Process folder data
//In AS 14 request only collectionid is sent, without class //In AS 14 request only collectionid is sent, without class
...@@ -218,6 +200,7 @@ class GetItemEstimate extends RequestProcessor { ...@@ -218,6 +200,7 @@ class GetItemEstimate extends RequestProcessor {
self::$topCollector->AnnounceInformation("StatusException ". $sc->GetParameter($spa, "status"), true); self::$topCollector->AnnounceInformation("StatusException ". $sc->GetParameter($spa, "status"), true);
} }
} }
} }
if(!self::$decoder->getElementEndTag()) if(!self::$decoder->getElementEndTag())
return false; //SYNC_GETITEMESTIMATE_FOLDERS return false; //SYNC_GETITEMESTIMATE_FOLDERS
......
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