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. best regards Marius -- ## List details at https://lists.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/
