Autor: Cyborg Data: A: exim-users Assumpte: Re: [exim] Rejecting over quota at RCPT time - revisited
> I'm envisioning an external daemon to check for over_quota condition:
> 1. Listen on $port.
> 2. Accept requests such as "CHECK_QUOTA local_part domain"
> 3. Check for key in memcache for this email address, return "1" if
> found and is overquota (has value bigger than zero).
> 4. If not found, or has value 0, do the quota calculation from the
> maildirsize file, set the key in memcache with some small TTL, then
> return answer to socket ("0" = ok, "1" = over quota) and close.
>
> Along the same lines as your thoughts? (aside from external daemons == UGLY).
>
> ...Todd
the external daemon is everything, but not ugly, as you can outsource
the quota updates to that daemon.
Point 4. is not needed IF you have unique uids for each maildir, which
does not even need to be a valid systemuid . If you have uuids ( :) )
the daemon can use the ioless "repquota" call and update his entire
userdb in one call, which makes it in fact VERY efficient . The quota is
already managed by the filesystem in an optimized way , so make useof it .
I was wondering, IF this daemon could be reached via the spamd/clamd
mechanismen, there is not even a need for perl or execute() . It would
be very simple to integrate. Just to clarify it, i mean direct socket
operations from exim to that quota daemon.
Note to self: avoid quota calls for non-mailboxes in exim directly.