ph10 2006/02/13 12:03:00 GMT
Modified files:
exim-doc/doc-txt ChangeLog NewStuff
exim-src ACKNOWLEDGMENTS
exim-src/src acl.c globals.c globals.h readconf.c
smtp_in.c
exim-test/confs 0233
exim-test/log 0233
exim-test/mail 0233.me
exim-test/scripts/0000-Basic 0233
exim-test/stdout 0233
Added files:
exim-test/msglog 0233.10HmbB-0005vi-00
0233.10HmbD-0005vi-00
Log:
Add control=freeze/no_tell feature.
Revision Changes Path
1.294 +2 -0 exim/exim-doc/doc-txt/ChangeLog
1.83 +6 -0 exim/exim-doc/doc-txt/NewStuff
1.40 +2 -1 exim/exim-src/ACKNOWLEDGMENTS
1.55 +13 -2 exim/exim-src/src/acl.c
1.48 +1 -0 exim/exim-src/src/globals.c
1.35 +1 -0 exim/exim-src/src/globals.h
1.19 +5 -0 exim/exim-src/src/readconf.c
1.31 +1 -0 exim/exim-src/src/smtp_in.c
1.2 +3 -1 exim/exim-test/confs/0233
1.2 +10 -3 exim/exim-test/log/0233
1.2 +17 -3 exim/exim-test/mail/0233.me
1.1 +2 -0 exim/exim-test/msglog/0233.10HmbB-0005vi-00 (new)
1.1 +2 -0 exim/exim-test/msglog/0233.10HmbD-0005vi-00 (new)
1.2 +14 -1 exim/exim-test/scripts/0000-Basic/0233
1.2 +9 -0 exim/exim-test/stdout/0233
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.293
retrieving revision 1.294
diff -u -r1.293 -r1.294
--- ChangeLog 13 Feb 2006 11:28:56 -0000 1.293
+++ ChangeLog 13 Feb 2006 12:02:59 -0000 1.294
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.293 2006/02/13 11:28:56 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.294 2006/02/13 12:02:59 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -140,6 +140,8 @@
PH/25 Do not write to syslog when running in the test harness. The only
occasion when this arises is a failure to open the main or panic logs
(for which there is an explicit test).
+
+PH/26 Added the /no_tell option to "control=freeze".
Index: NewStuff
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -r1.82 -r1.83
--- NewStuff 10 Feb 2006 14:25:43 -0000 1.82
+++ NewStuff 13 Feb 2006 12:02:59 -0000 1.83
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.82 2006/02/10 14:25:43 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.83 2006/02/13 12:02:59 ph10 Exp $
New Features in Exim
--------------------
@@ -39,6 +39,12 @@
authentication data. The preferred variables are now the new ones, with
the use of the numerical ones being deprecated, though the support will
not be removed, at least, not for a long time.
+
+PH/05 The "control=freeze" ACL modifier can now be followed by /no_tell. If
+ the global option freeze_tell is set, it is ignored for the current
+ message (that is, nobody is told about the freezing), provided all the
+ "control=freeze" modifiers that are obeyed in the current message have
+ the /no_tell option.
Version 4.60
Index: ACKNOWLEDGMENTS
===================================================================
RCS file: /home/cvs/exim/exim-src/ACKNOWLEDGMENTS,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- ACKNOWLEDGMENTS 12 Dec 2005 15:58:53 -0000 1.39
+++ ACKNOWLEDGMENTS 13 Feb 2006 12:02:59 -0000 1.40
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.39 2005/12/12 15:58:53 ph10 Exp $
+$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.40 2006/02/13 12:02:59 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
@@ -20,7 +20,7 @@
Philip Hazel
Lists created: 20 November 2002
-Last updated: 12 December 2005
+Last updated: 13 February 2006
THE OLD LIST
@@ -243,5 +243,6 @@
Patch for hosts_avoid_esmtp
Stephen Wilcox Patch for ignore_enotdir problem
David Woodhouse SQLite support proof of concept code
+ control=freeze/no_tell basic code
****
Index: acl.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/acl.c,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- acl.c 7 Feb 2006 11:19:00 -0000 1.54
+++ acl.c 13 Feb 2006 12:02:59 -0000 1.55
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/acl.c,v 1.54 2006/02/07 11:19:00 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/acl.c,v 1.55 2006/02/13 12:02:59 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -528,7 +528,7 @@
{ US"caseful_local_part", CONTROL_CASEFUL_LOCAL_PART, FALSE },
{ US"caselower_local_part", CONTROL_CASELOWER_LOCAL_PART, FALSE },
{ US"enforce_sync", CONTROL_ENFORCE_SYNC, FALSE },
- { US"freeze", CONTROL_FREEZE, FALSE },
+ { US"freeze", CONTROL_FREEZE, TRUE },
{ US"no_enforce_sync", CONTROL_NO_ENFORCE_SYNC, FALSE },
{ US"no_multiline_responses", CONTROL_NO_MULTILINE, FALSE },
{ US"queue_only", CONTROL_QUEUE_ONLY, FALSE },
@@ -2375,7 +2375,7 @@
{
/* A nested ACL that returns "discard" makes sense only for an "accept" or
"discard" verb. */
-
+\
case ACLC_ACL:
rc = acl_check_internal(where, addr, arg, level+1, user_msgptr, log_msgptr);
if (rc == DISCARD && verb != ACL_ACCEPT && verb != ACL_DISCARD)
@@ -2489,6 +2489,17 @@
case CONTROL_FREEZE:
deliver_freeze = TRUE;
deliver_frozen_at = time(NULL);
+ freeze_tell = freeze_tell_config; /* Reset to configured value */
+ if (Ustrncmp(p, "/no_tell", 8) == 0)
+ {
+ p += 8;
+ freeze_tell = NULL;
+ }
+ if (*p != 0)
+ {
+ *log_msgptr = string_sprintf("syntax error in \"control=%s\"", arg);
+ return ERROR;
+ }
break;
case CONTROL_QUEUE_ONLY:
Index: globals.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/globals.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- globals.c 10 Feb 2006 16:29:20 -0000 1.47
+++ globals.c 13 Feb 2006 12:02:59 -0000 1.48
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/globals.c,v 1.47 2006/02/10 16:29:20 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/globals.c,v 1.48 2006/02/13 12:02:59 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -545,6 +545,7 @@
#endif
uid_t fixed_never_users[] = { FIXED_NEVER_USERS };
uschar *freeze_tell = NULL;
+uschar *freeze_tell_config = NULL;
uschar *fudged_queue_times = US"";
uschar *gecos_name = NULL;
Index: globals.h
===================================================================
RCS file: /home/cvs/exim/exim-src/src/globals.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- globals.h 10 Feb 2006 14:25:43 -0000 1.34
+++ globals.h 13 Feb 2006 12:02:59 -0000 1.35
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/globals.h,v 1.34 2006/02/10 14:25:43 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/globals.h,v 1.35 2006/02/13 12:02:59 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -333,6 +333,7 @@
extern uschar *found_extension; /* demime acl condition: file extension found */
#endif
extern uschar *freeze_tell; /* Message on (some) freezings */
+extern uschar *freeze_tell_config; /* The configured setting */
extern uschar *fudged_queue_times; /* For use in test harness */
extern uschar *gecos_name; /* To be expanded when pattern matches */
Index: readconf.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/readconf.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- readconf.c 8 Feb 2006 14:28:51 -0000 1.18
+++ readconf.c 13 Feb 2006 12:02:59 -0000 1.19
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/readconf.c,v 1.18 2006/02/08 14:28:51 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/readconf.c,v 1.19 2006/02/13 12:02:59 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -2818,6 +2818,11 @@
/* remote_max_parallel must be > 0 */
if (remote_max_parallel <= 0) remote_max_parallel = 1;
+
+/* Save the configured setting of freeze_tell, so we can re-instate it at the
+start of a new SMTP message. */
+
+freeze_tell_config = freeze_tell;
/* The primary host name may be required for expansion of spool_directory
and log_file_path, so make sure it is set asap. It is obtained from uname(),
Index: smtp_in.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/smtp_in.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- smtp_in.c 10 Feb 2006 14:25:43 -0000 1.30
+++ smtp_in.c 13 Feb 2006 12:02:59 -0000 1.31
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/smtp_in.c,v 1.30 2006/02/10 14:25:43 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/smtp_in.c,v 1.31 2006/02/13 12:02:59 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -806,6 +806,7 @@
acl_warn_headers = NULL;
queue_only_policy = FALSE;
deliver_freeze = FALSE; /* Can be set by ACL */
+freeze_tell = freeze_tell_config; /* Can be set by ACL */
fake_response = OK; /* Can be set by ACL */
#ifdef WITH_CONTENT_SCAN
no_mbox_unspool = FALSE; /* Can be set by ACL */
Index: 0233
===================================================================
RCS file: /home/cvs/exim/exim-test/confs/0233,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0233 7 Feb 2006 10:34:25 -0000 1.1
+++ 0233 13 Feb 2006 12:02:59 -0000 1.2
@@ -23,7 +23,9 @@
begin acl
rcpt:
- accept control = freeze
+ accept local_parts = usery
+ control = freeze
+ accept control = freeze/no_tell
# ----- Routers -----
Index: 0233
===================================================================
RCS file: /home/cvs/exim/exim-test/log/0233,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0233 7 Feb 2006 10:34:46 -0000 1.1
+++ 0233 13 Feb 2006 12:03:00 -0000 1.2
@@ -9,6 +9,13 @@
1999-03-02 09:44:33 10HmaX-0005vi-00 Frozen by the system filter: system filter freezes
1999-03-02 09:44:33 10HmbA-0005vi-00 <= CALLER@??? U=CALLER P=local-smtp S=sss
1999-03-02 09:44:33 10HmbA-0005vi-00 frozen by ACL
-1999-03-02 09:44:33 10HmbB-0005vi-00 <= <> R=10HmbA-0005vi-00 U=EXIMUSER P=local S=sss
-1999-03-02 09:44:33 10HmbB-0005vi-00 => me <me@???> R=all T=local_delivery
-1999-03-02 09:44:33 10HmbB-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbB-0005vi-00 <= CALLER@??? U=CALLER P=local-smtp S=sss
+1999-03-02 09:44:33 10HmbB-0005vi-00 frozen by ACL
+1999-03-02 09:44:33 10HmbC-0005vi-00 <= <> R=10HmbB-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbC-0005vi-00 => me <me@???> R=all T=local_delivery
+1999-03-02 09:44:33 10HmbC-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbD-0005vi-00 <= CALLER@??? U=CALLER P=local-smtp S=sss
+1999-03-02 09:44:33 10HmbD-0005vi-00 frozen by ACL
+1999-03-02 09:44:33 10HmbE-0005vi-00 <= <> R=10HmbD-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbE-0005vi-00 => me <me@???> R=all T=local_delivery
+1999-03-02 09:44:33 10HmbE-0005vi-00 Completed
Index: 0233.me
===================================================================
RCS file: /home/cvs/exim/exim-test/mail/0233.me,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0233.me 7 Feb 2006 10:34:59 -0000 1.1
+++ 0233.me 13 Feb 2006 12:03:00 -0000 1.2
@@ -18,15 +18,29 @@
From MAILER-DAEMON Tue Mar 02 09:44:33 1999
Received: from EXIMUSER by myhost.test.ex with local (Exim x.yz)
- id 10HmbB-0005vi-00
+ id 10HmbC-0005vi-00
for me@???; Tue, 2 Mar 1999 09:44:33 +0000
Auto-Submitted: auto-replied
From: Mail Delivery System <Mailer-Daemon@???>
To: me@???
Subject: Message frozen on arrival
-Message-Id: <E10HmbB-0005vi-00@???>
+Message-Id: <E10HmbC-0005vi-00@???>
Date: Tue, 2 Mar 1999 09:44:33 +0000
-Message 10HmbA-0005vi-00 was frozen on arrival by ACL.
+Message 10HmbB-0005vi-00 was frozen on arrival by ACL.
+The sender is <CALLER@???>.
+
+From MAILER-DAEMON Tue Mar 02 09:44:33 1999
+Received: from EXIMUSER by myhost.test.ex with local (Exim x.yz)
+ id 10HmbE-0005vi-00
+ for me@???; Tue, 2 Mar 1999 09:44:33 +0000
+Auto-Submitted: auto-replied
+From: Mail Delivery System <Mailer-Daemon@???>
+To: me@???
+Subject: Message frozen on arrival
+Message-Id: <E10HmbE-0005vi-00@???>
+Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+Message 10HmbD-0005vi-00 was frozen on arrival by ACL.
The sender is <CALLER@???>.
Index: 0233.10HmbB-0005vi-00
====================================================================
1999-03-02 09:44:33 Received from CALLER@??? U=CALLER P=local-smtp S=sss
1999-03-02 09:44:33 frozen by ACL
Index: 0233.10HmbD-0005vi-00
====================================================================
1999-03-02 09:44:33 Received from CALLER@??? U=CALLER P=local-smtp S=sss
1999-03-02 09:44:33 frozen by ACL
Index: 0233
===================================================================
RCS file: /home/cvs/exim/exim-test/scripts/0000-Basic/0233,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0233 7 Feb 2006 10:54:33 -0000 1.1
+++ 0233 13 Feb 2006 12:03:00 -0000 1.2
@@ -1,12 +1,25 @@
# freeze_tell & system filter & ACL
+# System filter freezes this one
exim -odi userx
Rhubarb
****
+# ACL freezes these two, tell for the second, and third, not for the first
exim -odi -bs
mail from:<a@???>
+rcpt to:<userz@???>
+data
+Should be frozen (no tell)
+.
+mail from:<a@???>
+rcpt to:<usery@???>
+data
+Should be frozen (with tell)
+.
+mail from:<a@???>
+rcpt to:<userz@???>
rcpt to:<usery@???>
data
-Should be frozen
+Should be frozen (with tell because not both no_tell)
.
quit
****
Index: 0233
===================================================================
RCS file: /home/cvs/exim/exim-test/stdout/0233,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0233 7 Feb 2006 10:47:37 -0000 1.1
+++ 0233 13 Feb 2006 12:03:00 -0000 1.2
@@ -3,4 +3,13 @@
250 Accepted
354 Enter message, ending with "." on a line by itself
250 OK id=10HmbA-0005vi-00
+250 OK
+250 Accepted
+354 Enter message, ending with "." on a line by itself
+250 OK id=10HmbB-0005vi-00
+250 OK
+250 Accepted
+250 Accepted
+354 Enter message, ending with "." on a line by itself
+250 OK id=10HmbD-0005vi-00
221 myhost.test.ex closing connection