[Dovecot] Wrong UIDs returned from mailbox_transaction_commit_get_uids()
Ron Avriel
ravriel_1 at yahoo.com
Tue Apr 1 15:16:32 EEST 2008
> >
> > It should be:
> >
> > int mailbox_transaction_commit(struct mailbox_transaction_context **t)
> > {
> > uint32_t tmp1, tmp2, tmp3;
> >
> > return mailbox_transaction_commit_get_uids(t, &tmp1, &tmp2, &tmp3);
> > }
>
> How/where does this help? The tmp values are ignored in any case, so I
> don't think this is the right fix for it.
>
The problem occurs if transaction_commit() is hooked.
In mail_log plugin I wanted to print the committed UIDs. I changed mail_log_transaction_commit()
to:
{
...
ret = lbox->super.transaction_commit(t, uid_validity_r,
first_saved_uid_r,
last_saved_uid_r);
if (0 == ret) {
i_info("uid_validity=%u, first_uid=%u, last_uid=%u",
*uid_validity_r, *first_saved_uid_r, *last_saved_uid_r);
}
return ret;
}
the result was:
Apr 1 14:59:37 ha-test1 deliver(test1 at test.com): uid_validity=1202218363, first_uid=1202218363, last_uid=1202218363
These values are equal to the UID validity.
After changing mailbox_transaction_commit() as described above, I got correct values:
Apr 1 15:09:50 ha-test1 deliver(test1 at test.com): uid_validity=1202218363, first_uid=139, last_uid=139
Ron
____________________________________________________________________________________
You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.
http://tc.deals.yahoo.com/tc/blockbuster/text5.com
More information about the dovecot
mailing list