On Mon, 22 Aug 2005 08:49:26 -0700
Tom Collins <[EMAIL PROTECTED]> wrote:
> On Aug 22, 2005, at 6:58 AM, Riccardo Bini wrote:
> > ok.. with 5.4.12 works but not as I would want 8-)
> > I mean when vdelivermail deliver the email and the user is over system
> > quota
> > vdeliver return a "deferral: system_error/".
> > vdelivermail would have to return "user is over quota" with an
> > 'deliver_quota_warning'. Instead the email keep in queue like an error
> > message.
>
> Well, there's a good chance it won't be able to deliver the over quota
> message if the user has hit their system quota.
>
> I'll take a look at the code, and see if we can catch the system quota
> error and do an overquota bounce instead of a deferral.
I think that it is a problem of i-node excess when
a new email file opened.
When a new email file is opened, it is necessary to check EDQUOT.
--- vdelivermail.c.orig Wed Mar 23 15:18:11 2005
+++ vdelivermail.c Tue Aug 23 23:32:43 2005
@@ -429,6 +429,9 @@
/* open the new email file */
if ((write_fd=open(local_file_tmp, O_CREAT|O_RDWR, S_IRUSR|S_IWUSR)) ==
-1) {
+ if ( errno == EDQUOT ) {
+ return -1;
+ }
printf("can not open new email file errno=%d file=%s\n",
errno, local_file_tmp);
return(-2);
Best regards,
--
Toshihiko Kyoda <[EMAIL PROTECTED]>