18 Jul
2008
18 Jul
'08
9:06 p.m.
I recently wondered about that code. The problem is:
- save_init() is called with dest_mail=NULL
- antispam sees that dest_mail=NULL and sets it, and calls
super.save_init()- quota sees that dest_mail != NULL so it doesn't set qt->tmp_mail
- mailbox_save_init() stores ctx->dest_mail = NULL (because it
doesn't see the updated value)
Good. I just analysed it down to the same thing :)
So the quota code eventually sees both ctx->dest_mail = NULL and qt-
tmp_mail = NULL. I'm not really sure what the right fix for this
is.. ctx->dest_mail should be set by something. Perhaps if quota/ antispam overrides it it should set it, and mailbox_save_init()
shouldn't set it if it's already set..
Ok, so mailbox_save_init() is the code I said about that it only sets it up later.
johannes