[Dovecot] Dovecot Quota plugin as Couier quota

Timo Sirainen tss at iki.fi
Thu Dec 30 12:31:35 EET 2010


On Mon, 2010-12-27 at 12:08 +0100, Antonio Perez-Aranda wrote:
> I get a similar behavior between dovecot quota plugin and courier
> quota with the attached patch.
> 
> When the client change flags, then is forced to recalc. This is
> because I don't know how to get the changed flags on quota sync
> method.

Right, there's no way to see what flags changed with the current API. I
guess you could modify the API for that.. In maildir_sync_flags() the
old flags are in ctx->flags after:

	/* get the current flags and keywords */
	maildir_filename_get_flags(ctx->keywords_sync_ctx,
				   fname, &ctx->flags, &ctx->keywords);

And new flags are set to ctx->flags also later.

The API change could be something like:

struct mailbox_sync_notify {
	enum mailbox_sync_type sync_type;
	uint8_t old_flags, new_flags;
};

	void (*sync_notify)(struct mailbox *box, uint32_t uid,
			    const struct mailbox_sync_notify *notify);

I guess I could do this change for v2.1.

> The courier quota behavior is avoid to count all deleted mails,
> include "mark as deleted" mails.

I don't much like this feature though..

> +                /* YACO: Avoid to count in dirsize Trash Marked mails*/
> +                p = strchr(dp->d_name, 'T');
> +                if (p != NULL){
> +                     continue;
> +                }

This isn't always reliable (e.g. hostname could have 'T' letter in it).
You should first find the ':' in the filename and look for 'T' only
after that.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
Url : http://dovecot.org/pipermail/dovecot/attachments/20101230/8169ed68/attachment.bin 


More information about the dovecot mailing list