[horde] Can't synchronize older devices with ActiveSync-2.13.2
Michael J Rubinsky
mrubinsk at horde.org
Mon Mar 24 05:12:11 UTC 2014
Quoting Arjen de Korte <arjen+horde at de-korte.org>:
> Citeren Arjen de Korte <arjen+horde at de-korte.org>:
>
>> Citeren Arjen de Korte <arjen+horde at de-korte.org>:
>>
>>> Citeren Michael J Rubinsky <mrubinsk at horde.org>:
>>>
>>>> Quoting Arjen de Korte <arjen+horde at de-korte.org>:
>>>>
>>>>> I have several (older) devices that stop synchronizing with the
>>>>> latest (2.13.2) version of Horde_ActiveSync. Calendar
>>>>> synchronization has been broken for most of them (and the newer
>>>>> ones too) for quite a while already (see Bug #13022), but now
>>>>> also mailboxes are affected. Some mailboxes will synchronize
>>>>> fine, but others (it seems to be the ones with lots of messages
>>>>> in them) don't. Removing accounts and provisioning devices again
>>>>> doesn't help.
>>>>>
>>>>> One thing that I noticed is, that now all devices report the
>>>>> same 'Supporting protocol version':
>>>>>
>>>>> INFO: [5891] Request being handled for device: HTCAND543813B4,
>>>>> Supporting protocol version: 14,1, Using Horde_ActiveSync v2.13.2
>>>>> INFO: [5207] Request being handled for device: 847CC7DCA0F0B1CF,
>>>>> Supporting protocol version: 14.1, Using Horde_ActiveSync v2.13.2
>>>>> INFO: [7820] Request being handled for device:
>>>>> ANDROID1325376003651, Supporting protocol version: 14.1, Using
>>>>> Horde_ActiveSync v2.13.2
>>>>>
>>>>> The last version of Horde_ActiveSync that more-or-less works
>>>>> here is 2.12.4, where the supporting protocol version matches
>>>>> with what the devices actually support:
>>>>>
>>>>> INFO: [19415] Request being handled for device: HTCAND543813B4,
>>>>> Supporting protocol version: 12.1, Using Horde_ActiveSync v2.12.4
>>>>> INFO: [20366] Request being handled for device:
>>>>> 847CC7DCA0F0B1CF, Supporting protocol version: 12.1, Using
>>>>> Horde_ActiveSync v2.12.4
>>>>> INFO: [26236] Request being handled for device:
>>>>> ANDROID1325376003651, Supporting protocol version: 14.1, Using
>>>>> Horde_ActiveSync v2.12.4
>>>>>
>>>>> Only the ANDROID1325376003651 is able to synchronize mail
>>>>> without issues, for the other two there will be massive looping
>>>>> syncs before Horde gives up on synchronization (large mailboxes
>>>>> and the calendar seem to be affected). With v2.12.4 all devices
>>>>> synchronize at least mail and contacts properly and some
>>>>> accounts (this doesn't seem to be related to the devices) will
>>>>> also have their calendar synchronized.
>>>>
>>>> Can you provide the exact string that the client sends in the
>>>> version header?
>>>
>>> Do I need to grab this from the wire or is this logged somewhere?
>>
>> I think I found the problem. The version returned by the client is
>> not used anymore. It is supposed to be set in Horde/ActiveSync.php
>> by the following code
>>
>> 1018 /**
>> 1019 * Obtain the ActiveSync protocol version requested by
>> the client headers.
>> 1020 *
>> 1021 * @return long
>> 1022 */
>> 1023 public function getProtocolVersion()
>> 1024 {
>> 1025 if (isset(self::$_version)) {
>> 1026 return self::$_version;
>> 1027 }
>> 1028 self::$_version =
>> $this->_request->getHeader('MS-ASProtocolVersion');
>> 1029 if (empty(self::$_version)) {
>> 1030 $get = $this->getGetVars();
>> 1031 self::$_version = empty($get['ProtVer']) ? '1.0'
>> : $get['ProtVer'];
>> 1032 }
>> 1033 return self::$_version;
>> 1034 }
>> 1035
>>
>> If I understand the above correctly, this will no longer work since
>> the following commit already defaults $_version to 14.1 (and the
>> function will always return without parsing the header).
>>
>> diff --git a/framework/ActiveSync/lib/Horde/ActiveSync.php
>> b/framework/ActiveSync/lib/Horde/ActiveSync.php
>> index e1e5840..d3bda80 100644
>> --- a/framework/ActiveSync/lib/Horde/ActiveSync.php
>> +++ b/framework/ActiveSync/lib/Horde/ActiveSync.php
>> @@ -324,7 +324,7 @@ class Horde_ActiveSync
>> *
>> * @var float
>> */
>> - static protected $_version;
>> + static protected $_version = 14.1;
>>
>> /**
>> * Multipart support?
>>
>> I have yet to try if reverting this will fix things.
>
> Yup, reverting that commit seems to fix the looping syncs on older devices.
Indeed, this was incorrect. The commit is reverted. This needs to be
refactored for Horde 6.
--
mike
The Horde Project
http://www.horde.org
https://www.facebook.com/hordeproject
https://www.twitter.com/hordeproject
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5849 bytes
Desc: S/MIME Signature
URL: <http://lists.horde.org/archives/horde/attachments/20140324/f4e8abb4/attachment-0001.bin>
More information about the horde
mailing list