[PATCH 1/4] Re: Simplify & document savemessage_getnewheader
Nicolas Sebrecht
nicolas.s-dev at laposte.net
Fri Jan 21 20:24:27 GMT 2011
On Fri, Jan 21, 2011 at 03:09:04PM +0100, Sebastian Spaeth wrote:
>
> savemessage_getnewheader was an undocmented, cryptic and overengineered
> function. It generates a new unique value that can be used as a mail
> header to be inserted. For this it used LOTS of randomness sources: hash
> of the mail content, hash of the folder name, hash of the repository
> name, the current time, a random() value, and the offlineimap version string.
> All we need is something random. So reduce this to hash of content
> appended by a random integer. Sufficient and somewhat faster to calculate.
>
> Rename the function to actually describe accurately what it does or
> would you have guessed that savemessage_getnewheader() did nothing more
> than returning ('X-OfllineIMAP', <randomstring> )? Rename to
> generate_randomheader() to make it clearer what this is all about.
>
> Also document the function, describing what it does, and what it returns.
>
> Signed-off-by: Sebastian Spaeth <Sebastian at SSpaeth.de>
> ---
> offlineimap/folder/IMAP.py | 26 ++++++++++++++++++--------
> 1 files changed, 18 insertions(+), 8 deletions(-)
I was first sceptical to see more insertions than deletions for
something pretending to bail out overengineered stuff but it comes from
the added documentation.
I would add a comment in the code about the importance of the random()
part of the number which avoid possible collisions against a "hash
content only" strategy, though.
--
Nicolas Sebrecht
More information about the OfflineIMAP-project
mailing list