On Thu, 3 Jul 2003, John Alton Tamplin wrote: > So the quota used for a particular mailbox (independent of the quota > root it belongs to) is stored in cyrus.index as a 32-bit network > byte-order integer, right? It looks like that could be handled in an > upwards-compatible way either by checking the start offset just like it > is done for pop3_last_login, uidvalidity, flags, and pop3_new_uidl or by > using a new minor number in the index file. If the former approach is > used, the high 32 bits would have to be stored at the end, while with a > new minor version of the format it could be kept together. > > Since the actual quota files are in ASCII, it is trivial to support > upwards compatibility -- just include code capable of reading/writing > 64-bit numbers.
Yes. How the upgrade would be done is pretty much a solved problem. > How about creating a new type, which can be long long on appropriate > platforms or a struct { unsigned long hi, lo; } on ones without long > long support, and a set of functions for reading, writing, and math on > these types? Those could be macros or inline functions for platforms > with long long support and not lose much efficiency, while still > supporting older/smaller platforms. I don't see any problems with this implementation offhand. -Rob -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Rob Siemborski * Andrew Systems Group * Cyert Hall 207 * 412-268-7456 Research Systems Programmer * /usr/contributed Gatekeeper