-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.293 2006/02/13 11:28:56 ph10 Exp $
+$Cambridge: 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
-------------------------------------------
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".
+
Exim version 4.60
-$Cambridge: exim/doc/doc-txt/NewStuff,v 1.82 2006/02/10 14:25:43 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/NewStuff,v 1.83 2006/02/13 12:02:59 ph10 Exp $
New Features in Exim
--------------------
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
------------
-$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.39 2005/12/12 15:58:53 ph10 Exp $
+$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.40 2006/02/13 12:02:59 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
Philip Hazel
Lists created: 20 November 2002
-Last updated: 12 December 2005
+Last updated: 13 February 2006
THE OLD LIST
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
****
-/* $Cambridge: exim/src/src/acl.c,v 1.54 2006/02/07 11:19:00 ph10 Exp $ */
+/* $Cambridge: exim/src/src/acl.c,v 1.55 2006/02/13 12:02:59 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
{ 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 },
{
/* 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)
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:
-/* $Cambridge: exim/src/src/globals.c,v 1.47 2006/02/10 16:29:20 ph10 Exp $ */
+/* $Cambridge: exim/src/src/globals.c,v 1.48 2006/02/13 12:02:59 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
#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;
-/* $Cambridge: exim/src/src/globals.h,v 1.34 2006/02/10 14:25:43 ph10 Exp $ */
+/* $Cambridge: exim/src/src/globals.h,v 1.35 2006/02/13 12:02:59 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
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 */
-/* $Cambridge: exim/src/src/readconf.c,v 1.18 2006/02/08 14:28:51 ph10 Exp $ */
+/* $Cambridge: exim/src/src/readconf.c,v 1.19 2006/02/13 12:02:59 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
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(),
but if that yields an unqualified value, make a FQDN by using gethostbyname to
-/* $Cambridge: exim/src/src/smtp_in.c,v 1.30 2006/02/10 14:25:43 ph10 Exp $ */
+/* $Cambridge: exim/src/src/smtp_in.c,v 1.31 2006/02/13 12:02:59 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
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 */
begin acl
rcpt:
- accept control = freeze
+ accept local_parts = usery
+ control = freeze
+ accept control = freeze/no_tell
# ----- Routers -----
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@myhost.test.ex 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@myhost.test.ex> 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@myhost.test.ex 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@myhost.test.ex> 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@myhost.test.ex 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@myhost.test.ex> R=all T=local_delivery
+1999-03-02 09:44:33 10HmbE-0005vi-00 Completed
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@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
Auto-Submitted: auto-replied
From: Mail Delivery System <Mailer-Daemon@myhost.test.ex>
To: me@myhost.test.ex
Subject: Message frozen on arrival
-Message-Id: <E10HmbB-0005vi-00@myhost.test.ex>
+Message-Id: <E10HmbC-0005vi-00@myhost.test.ex>
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@myhost.test.ex>.
+
+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@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+Auto-Submitted: auto-replied
+From: Mail Delivery System <Mailer-Daemon@myhost.test.ex>
+To: me@myhost.test.ex
+Subject: Message frozen on arrival
+Message-Id: <E10HmbE-0005vi-00@myhost.test.ex>
+Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+Message 10HmbD-0005vi-00 was frozen on arrival by ACL.
The sender is <CALLER@myhost.test.ex>.
--- /dev/null
+1999-03-02 09:44:33 Received from CALLER@myhost.test.ex U=CALLER P=local-smtp S=sss
+1999-03-02 09:44:33 frozen by ACL
--- /dev/null
+1999-03-02 09:44:33 Received from CALLER@myhost.test.ex U=CALLER P=local-smtp S=sss
+1999-03-02 09:44:33 frozen by ACL
# 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@test.ex>
+rcpt to:<userz@test.ex>
+data
+Should be frozen (no tell)
+.
+mail from:<a@test.ex>
+rcpt to:<usery@test.ex>
+data
+Should be frozen (with tell)
+.
+mail from:<a@test.ex>
+rcpt to:<userz@test.ex>
rcpt to:<usery@test.ex>
data
-Should be frozen
+Should be frozen (with tell because not both no_tell)
.
quit
****
250 Accepted\r
354 Enter message, ending with "." on a line by itself\r
250 OK id=10HmbA-0005vi-00\r
+250 OK\r
+250 Accepted\r
+354 Enter message, ending with "." on a line by itself\r
+250 OK id=10HmbB-0005vi-00\r
+250 OK\r
+250 Accepted\r
+250 Accepted\r
+354 Enter message, ending with "." on a line by itself\r
+250 OK id=10HmbD-0005vi-00\r
221 myhost.test.ex closing connection\r