Summary | Horde_SyncMl_Device_Synthesis corrupts sync data |
Queue | Synchronization |
Queue Version | Git master |
Type | Bug |
State | Resolved |
Priority | 2. Medium |
Owners | jan (at) horde (dot) org |
Requester | fabio.bas (at) officineinformatiche (dot) net |
Created | 01/26/2012 (4920 days ago) |
Due | |
Updated | 01/27/2016 (3458 days ago) |
Assigned | 01/27/2012 (4919 days ago) |
Resolved | 01/27/2016 (3458 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
being fixed after 4 years.
Unfortunately i can't test the fix, since i don't use SyncML anymore,
but the less-insane Dav protocol for syncing.
commit b12e66b66b4b0380091f56f5f55e2d020f1e74e5
Author: Jan Schneider <jan@horde.org>
Date: Wed Jan 27 18:07:55 2016 +0100
[jan] Remove workarounds for ancient Synthesis clients (
Bug #10942).framework/SyncMl/lib/Horde/SyncMl/State.php | 3 ---
framework/SyncMl/package.xml | 2 ++
2 files changed, 2 insertions(+), 3 deletions(-)
http://github.com/horde/horde/commit/b12e66b66b4b0380091f56f5f55e2d020f1e74e5
identifying itself as a pocket pc..
Horde_SyncMl_DeviceInfo::__set_state(array(
'VerDTD' => '1.2',
'Man' => 'Synthesis AG',
'Mod' => 'SySync Client PocketPC PRO',
'OEM' => 'Synthesis AG',
'FwV' => 'Android/2.2.1',
'SwV' => '3.4.0.33',
'HwV' => 'Android GT-S5570',
'DevID' => 'xxxxxxxxxxxx-xxxxxxxxxxxxxxx',
'DevTyp' => 'pda',
))
Horde_SyncMl_DeviceInfo::__set_state(array(
'VerDTD' => '1.2',
'Man' => 'Synthesis AG',
'Mod' => 'SySync Client iPhone Contacts+TodoZ',
'OEM' => 'Synthesis AG',
'FwV' => 'iPhone OS/5.0.1',
'SwV' => '3.4.0.38',
'HwV' => 'iPhone',
'DevID' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'DevTyp' => 'pda',
))
Here's the DeviceInfo for ipad/Synthesis SyncML Pro:
Horde_SyncMl_DeviceInfo::__set_state(array(
'VerDTD' => '1.2',
'Man' => 'Synthesis AG',
'Mod' => 'SySync Client iPhone Contacts+Calendar',
'OEM' => 'Synthesis AG',
'FwV' => 'iPhone OS/5.0.1',
'SwV' => '3.4.0.38',
'HwV' => 'iPad',
'DevID' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'DevTyp' => 'pda',
))
I'll be testing android as soon as i can get my hands on it.
Assigned to Jan Schneider
about the affected versions and platforms.
- the code actually assumes that every synthesis client is window
mobile, with a single exception (when
$GLOBALS['backend']->state->deviceInfo->Mod contains 'palm'); the same
workaround could be applied to other devices, or the check could be
inverted: apply the workarounds only if the device model is "windows
mobile".
- keeping the code untouched we'll probably avoid a regression on
7-years old devices running an obsolete version of window
mobile+synthesis (who's still using these?), but actually break
syncronization on all existing ios and android devices (hundreds of
millions devices in use).
I'll try to retrieve the $GLOBALS['backend']->state->deviceInfo for
ios and android devices so that the check can be improved.
State ⇒ Feedback
Patch ⇒ No
simply remove those workarounds.
Priority ⇒ 2. Medium
Type ⇒ Bug
Summary ⇒ Horde_SyncMl_Device_Synthesis corrupts sync data
Queue ⇒ Synchronization
Milestone ⇒
Patch ⇒ Yes
State ⇒ Unconfirmed
that is specific to the Synthesis.ch SyncML clients. The original
class seems to have been writter just to workaround some old
limitations for the windows mobile client:
- the inability to use DateTime in vTodo's DUE attribute, stripping
off the Time part;
- the use of custom values in the PRIORITY attribute (1,2,3 instead of 0-9);
Using any recent synthesis syncml client (i tested the iphone and the
android ones), these limitations doesn't exists anymore; but since
they are forced anyway, the resulting vTodo gets corrupted:
- every vTodo's due date is changed to time 00:00;
- every vTodo's priority is changed to either 1,2,3;
I tried to comment out all of the class's methods, and syncs started
working flawless.
Unfortunately i had no WindowsMobile or Palm devices to test this
change with, but is suppose that since all the synthesis's products
are based on the same library, the limitation is gone for all of these
devices.