src.quota-ignore
changeset 6 d2183655483b
child 18 cacfba0189d0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src.quota-ignore	Sun Feb 20 23:59:48 2011 +0100
@@ -0,0 +1,99 @@
+# HG changeset patch
+# Parent 717fd3d2296015e18687e4b3ecb259f7ded5e15f
+
+diff -r 717fd3d22960 src/transports/appendfile.c
+--- a/src/transports/appendfile.c	Sun Feb 13 14:05:44 2011 +0100
++++ b/src/transports/appendfile.c	Tue Feb 15 11:18:53 2011 +0100
+@@ -31,6 +31,8 @@
+ #define THRESHOLD_CHECK  (ob->quota_warn_threshold_value > 0 && \
+   (!ob->quota_warn_threshold_is_percent || ob->quota_value > 0))
+ 
++#define QUOTA_CHECK      (ob->quota_value > 0 && !ob->quota_no_check)
++
+ 
+ /* Options specific to the appendfile transport. They must be in alphabetic
+ order (note that "_" comes before the lower case letters). Some of them are
+@@ -236,7 +238,9 @@
+   FALSE,          /* mailstore_format */
+   FALSE,          /* mbx_format */
+   FALSE,          /* quota_warn_threshold_is_percent */
+-  TRUE            /* quota_is_inclusive */
++  TRUE,           /* quota_is_inclusive */
++  FALSE,          /* quota_no_check */
++  FALSE           /* quota_filecount_no_check */
+ };
+ 
+ 
+@@ -270,6 +274,7 @@
+   (appendfile_transport_options_block *)(tblock->options_block);
+ uschar *q = ob->quota;
+ double default_value = 0.0;
++int no_check = 0;
+ int i;
+ 
+ addrlist = addrlist;    /* Keep picky compilers happy */
+@@ -323,6 +328,15 @@
+       rest++;
+       }
+ 
++
++    /* For quota and quota_filecount there may be options
++    appended. Currently only "no_check", so we can be lazy parsing it */
++    if (i < 2 && Ustrstr(rest, "/no_check") == rest)
++      {
++	 no_check = 1;
++	 rest += strlen("/no_check");
++      }
++
+     while (isspace(*rest)) rest++;
+ 
+     if (*rest != 0)
+@@ -340,12 +354,14 @@
+     case 0:
+     if (d >= 2.0*1024.0*1024.0*1024.0 && sizeof(off_t) <= 4) which = US"quota";
+     ob->quota_value = (off_t)d;
++    ob->quota_no_check = no_check;
+     q = ob->quota_filecount;
+     break;
+ 
+     case 1:
+     if (d >= 2.0*1024.0*1024.0*1024.0) which = US"quota_filecount";
+     ob->quota_filecount_value = (int)d;
++    ob->quota_filecount_no_check = no_check;
+     q = ob->quota_warn_threshold;
+     break;
+ 
+@@ -1382,10 +1398,12 @@
+ DEBUG(D_transport)
+   {
+   debug_printf("appendfile: mode=%o notify_comsat=%d quota=" OFF_T_FMT
++    "%s"
+     " warning=" OFF_T_FMT "%s\n"
+     "  %s=%s format=%s\n  message_prefix=%s\n  message_suffix=%s\n  "
+     "maildir_use_size_file=%s\n",
+     mode, ob->notify_comsat, ob->quota_value,
++    ob->quota_no_check? " (no_check)" : ""
+     ob->quota_warn_threshold_value,
+     ob->quota_warn_threshold_is_percent? "%" : "",
+     isdirectory? "directory" : "file",
+@@ -2274,7 +2292,7 @@
+   create the file. When maildir support is not compiled,
+   ob->maildir_use_size_file is always FALSE. */
+ 
+-  if (ob->quota_value > 0 || THRESHOLD_CHECK || ob->maildir_use_size_file)
++  if (QUOTA_CHECK || THRESHOLD_CHECK || ob->maildir_use_size_file)
+     {
+     const uschar *error;
+     int offset;
+diff -r 717fd3d22960 src/transports/appendfile.h
+--- a/src/transports/appendfile.h	Sun Feb 13 14:05:44 2011 +0100
++++ b/src/transports/appendfile.h	Tue Feb 15 11:18:53 2011 +0100
+@@ -72,6 +72,8 @@
+   BOOL  mbx_format;
+   BOOL  quota_warn_threshold_is_percent;
+   BOOL  quota_is_inclusive;
++  BOOL  quota_no_check;
++  BOOL  quota_filecount_no_check;
+ } appendfile_transport_options_block;
+ 
+ /* Restricted creation options */