SVN-Stand 2013-12-09 von Jonathan deBoer
Es gibt ferner ein Problem mit ETags (was an SOGo Connector liegt):
Ich habe auf beiden Seiten ein Kontakt editiert.
Thunderbird Adressbuch sendet nun hartnäckig: If-Match: "100:5"
Aber serverseitig steht im Feld contact_etag bereits “7”, (ETag wird dann “100:7”) was folgerichtig zur Ablehnung mit “412 Precondition Failed” führt.
Beim manuellen Synchronisieren holt sich Thunderbird Adressbuch die Datenstände vom Server, mitunter:
<D:response xmlns:ns0=“urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/”>
<D:href>/egroupware/groupdav.php/shunyata/addressbook/C5D4AF59-3810-0001-414B-10521FB034A0.vcf</D:href>
<D:propstat>
<D:prop>
<D:getcontenttype>text/vcard</D:getcontenttype>
<D:getetag>“100:7”</D:getetag>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
Dennoch versucht Thunderbird Adressbuch ein Update zu erzwingen, obwohl er ein veraltetes ETag besitzt.
Anstatt die neue Version vom Server zu holen, versucht er wieder ein PUT mit altem ETag, was nicht geht.
Und zwar hartnäckig jedes Mal wo er ein Sync mit dem Server durchführt…
Wenn ich stattdessen NUR im Thunderbird Adressbuch Änderungen vornehme, klappt es.
EGW zählt dabei das Feld contact_etag hoch.
Das ist verm. korrekt und macht keine Probleme, weil SOGo Connector in diesem Fall kein “If-Match” sendet.
Das “If-Match” kommt also nur, wenn man auch am Server Änderungen vorgenommen hat.
Fazit: Mache alle Änderungen in Thunderbird Adressbuch.
Wer auch am Android Mobiltelefon arbeitet, kann sich selbst eine E-Mail schicken mit neuen oder geänderten Kontaktdaten, die Zuhause in Thunderbird Adressbuch eingesetzt werden - im Android Adressbuch werden ohnehin die Kategorien nicht bedient.
Ich habe das Problem in GitHub notiert, bzw. ein Kommentar zu einem seit Kurzem bestehenden Issue hinzugefügt:
https://github.com/inverse-inc/sogo-connector.tb24/issues/9