datatypes: fix contact caching

Adding grouping to the contact datatype broke PBAP caching: when
sending an empty URL, for example, during the sync, the parsed contact
had different field arrays than the locally stored contact, because the
latter was saved without the empty URL.

This caused the field-based comparison to detect a difference even when
the final, reencoded contact wasn't different at all.

To solve this, syncing now uses the same "don't send empty properties"
configuration as local storages. Testing shows that this resolves
the difference for EDS.

A more resilient solution would be to add a check based on the encoded
data, but that's more costly performance wise.
This commit is contained in:
Patrick Ohly 2014-07-14 04:25:54 -07:00
parent 7d66823e5f
commit 5d3df97cac
1 changed files with 4 additions and 0 deletions

View File

@ -5,6 +5,10 @@
<!-- enable reordering when talking to ourselves, enables asynchronous and batched execution -->
<strictexecordering>no</strictexecordering>
<!-- No need to send empty properties, we don't need them to indicate when
something isn't present because we use CtCap for that. -->
<noemptyproperties>yes</noemptyproperties>
<include rule="HAVE-SYNCEVOLUTION-EXDATE-DETACHED"/>
<include rule="HAVE-EVOLUTION-UI-SLOT"/>
<include rule="HAVE-ABLABEL-PARAMETER"/>