Android Z-Push

For weeks I had the intention to use my Android phone with Zarafa and Z-Push. However, my phone always reported that protocol version provided by the server would not be supported. I had a day off today and dug into the code (first Z-Push, then CyanogenMod 10) to track down the problem. It seemed like there would be a problem with the OPTIONS request in ActiveSync and the headers sent by Z-Push. I ended up using Fiddler to inspect the HTTPS traffic, in particular the headers and it turned out that Z-Push did not send the headers to identify the ActiveSync protocol. But the PHP-code (already messed with debugging output of my own) did send the headers.

Surprisingly, a minimal PHP script that did nothing by sending headers also worked. After a while it seems like the PHP output buffering (ob_start) dropped the headers, but then ob_clean or _flush at before and/or after the header call didn’t change anything.

Staring at the Fiddler traffic of the working testing code brought the saving idea: I had mod_pagespeed enabled (which I noticed, because it also added a header of its own). Turning it off made everything work!

Conclusion: Z-Push is incompatible with mod_pagespeed!

Von Fabian Stanke

Eine Leidenschaft für’s Ungreifbare habe ich schon lange. Als Patentanwalt helfe ich Erfindern, ihr geistiges Eigentum zu schützen und zu verwerten. Zuvor folgte einer frühen Begeisterung für Musik und Software ein Physikstudium in Wien, Toulouse und Genf, wo meine Spezialisierung auf Hochenergiephysik in eine Dissertation am Europäischen Kernforschungszentrum mündete.

2 Kommentare

Kommentare sind geschlossen.