[dev] Question regarding IMP_Maillog
Michael J Rubinsky
mrubinsk at horde.org
Tue Mar 19 21:54:53 UTC 2013
Quoting Michael M Slusarz <slusarz at horde.org>:
> Quoting Michael J Rubinsky <mrubinsk at horde.org>:
>
>> ActiveSync 14.0 adds support for synchronizing message
>> reply/forward state. In trying to implement this, I've come across
>> an issue with the way IMP_Maillog stores the guid of the email. In
>> every other application in Horde, history guids are build with ':'
>> delimiting the various parts of the guid. This makes it possible to
>> search for all entries that have changed within only a specific
>> application, for a specific user or resource. In kronolith, E.g,
>> the guids are 'kronolith:share_id:event_id'.
>>
>> According to the phpdoc for Horde_History::getByTimestamp(), the
>> ':' delimiter is part of the API:
>>
>> * @param string $parent The parent history to start searching at. If
>> * non-empty, will be searched for with a LIKE
>> * '$parent:%' clause.
>>
>>
>> In IMP_Maillog, however, the ids are build using '.' as the
>> delimiter. Due to this, it's impossible for me to use the History
>> API to obtain all entries that have been added since the last sync:
>>
>> $history->getByTimeStamp('<', $ts, array(), 'imp.mike');
>>
>> will fail since the history library appends the ':' delimter
>> automatically. I can't hack around it using the $query parameter
>> either, since those fields only work with the 'history_' fields in
>> the SQL backend.
>>
>> Is there a technical reason for this? I had thought it might be
>> because the Message-ID can contain ':' characters - but then it can
>> also contain '.'. Is this something that can be changed in
>> IMP_Maillog, or should I extend Horde_History to allow specifying
>> the delimter to be used in the ::getByTimeStamp() method?
>
> My guess is that this is just a historical anomaly. In that I
> believe maillog was the first action to use Horde_History (it may
> have even been moved from IMP -> Horde_History). So it's possible
> that this is the way we started out doing it and it was never
> changed to match. I am unaware of any technical reason behind this
> decision - although I'll admit I am not very familiar with the code.
>
> Although it seems like it should be Horde_History that enforces this
> prefix. In other words - it strips off the 'app:' prefix if passed
> in, and adds the correct app prefix. That's not a good API if it
> requires you to conform the ID to a certain format that is strictly
> enforced elsewhere in the code (and can't be worked around).
Agreed, and thanks for the response.
--
mike
The Horde Project (www.horde.org)
mrubinsk at horde.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6062 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.horde.org/archives/dev/attachments/20130319/8992ac7d/attachment.bin>
More information about the dev
mailing list