ph10 2005/04/05 14:58:35 BST
Modified files:
exim-doc/doc-txt ChangeLog NewStuff
exim-src ACKNOWLEDGMENTS
exim-src/src acl.c readconf.c
exim-test-orig/AutoTest/confs 002 149
exim-test-orig/AutoTest/scripts 149
exim-test-orig/AutoTest/stdout 001 002 149
Added files:
exim-test-orig/AutoTest/log 149
exim-test-orig/AutoTest/rejectlog 149
Log:
Kjetil Homme's patch for extended macro features (redefinition,
definition between driver and ACL definitions).
Revision Changes Path
1.108 +3 -0 exim/exim-doc/doc-txt/ChangeLog
1.33 +30 -0 exim/exim-doc/doc-txt/NewStuff
1.19 +2 -1 exim/exim-src/ACKNOWLEDGMENTS
1.27 +3 -10 exim/exim-src/src/acl.c
1.7 +152 -68 exim/exim-src/src/readconf.c
1.6 +1 -0 exim/exim-test-orig/AutoTest/confs/002
1.2 +38 -0 exim/exim-test-orig/AutoTest/confs/149
1.1 +1 -0 exim/exim-test-orig/AutoTest/log/149 (new)
1.1 +1 -0 exim/exim-test-orig/AutoTest/rejectlog/149 (new)
1.2 +9 -2 exim/exim-test-orig/AutoTest/scripts/149
1.8 +1 -0 exim/exim-test-orig/AutoTest/stdout/001
1.6 +1 -0 exim/exim-test-orig/AutoTest/stdout/002
1.2 +46 -0 exim/exim-test-orig/AutoTest/stdout/149
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -r1.107 -r1.108
--- ChangeLog 4 Apr 2005 10:33:49 -0000 1.107
+++ ChangeLog 5 Apr 2005 13:58:34 -0000 1.108
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.107 2005/04/04 10:33:49 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.108 2005/04/05 13:58:34 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -118,6 +118,9 @@
"input=".
PH/21 Added acl_not_smtp_mime to allow for MIME scanning for non-SMTP messages.
+
+PH/22 Added support for macro redefinition, and (re)definition in between
+ driver and ACL definitions.
A note about Exim versions 4.44 and 4.50
Index: NewStuff
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- NewStuff 4 Apr 2005 10:33:49 -0000 1.32
+++ NewStuff 5 Apr 2005 13:58:34 -0000 1.33
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.32 2005/04/04 10:33:49 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.33 2005/04/05 13:58:34 ph10 Exp $
New Features in Exim
--------------------
@@ -99,6 +99,36 @@
PH/04 There is a new option called acl_not_smtp_mime that allows you to scan
MIME parts in non-SMTP messages. It operates in exactly the same way as
acl_smtp_mime
+
+PH/05 It is now possible to redefine a macro within the configuration file.
+ The macro must have been previously defined within the configuration (or
+ an included file). A definition on the command line using the -D option
+ causes all definitions and redefinitions within the file to be ignored.
+ In other words, -D overrides any values that are set in the file.
+ Redefinition is specified by using '==' instead of '='. For example:
+
+ MAC1 = initial value
+ ...
+ MAC1 == updated value
+
+ Redefinition does not alter the order in which the macros are applied to
+ the subsequent lines of the configuration file. It is still the same
+ order in which the macros were originally defined. All that changes is
+ the macro's value. Redefinition makes it possible to accumulate values.
+ For example:
+
+ MAC1 = initial value
+ ...
+ MAC1 == MAC1 and something added
+
+ This can be helpful in situations where the configuration file is built
+ from a number of other files.
+
+PH/06 Macros may now be defined or redefined between router, transport,
+ authenticator, or ACL definitions, as well as in the main part of the
+ configuration. They may not, however, be changed within an individual
+ driver or ACL, or in the local_scan, retry, or rewrite sections of the
+ configuration.
Version 4.50
Index: ACKNOWLEDGMENTS
===================================================================
RCS file: /home/cvs/exim/exim-src/ACKNOWLEDGMENTS,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- ACKNOWLEDGMENTS 29 Mar 2005 14:53:09 -0000 1.18
+++ ACKNOWLEDGMENTS 5 Apr 2005 13:58:35 -0000 1.19
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.18 2005/03/29 14:53:09 ph10 Exp $
+$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.19 2005/04/05 13:58:35 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
@@ -20,7 +20,7 @@
Philip Hazel
Lists created: 20 November 2002
-Last updated: 29 March 2005
+Last updated: 05 April 2005
THE OLD LIST
@@ -41,6 +41,7 @@
Jason Gunthorpe IPv6 support (Linux)
Michael Haardt LDAP support enhancement
Steve Haslam First code for TLS
+Kjetil Torgrim Homme Suggested patch for macro extensions
John Horne Proof-reading documentation (repeatedly)
Pierre Humblet Cygwin support
Paul Kelly MySQL interface
Index: acl.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/acl.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- acl.c 29 Mar 2005 10:56:48 -0000 1.26
+++ acl.c 5 Apr 2005 13:58:35 -0000 1.27
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/acl.c,v 1.26 2005/03/29 10:56:48 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/acl.c,v 1.27 2005/04/05 13:58:35 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -589,18 +589,11 @@
s++;
}
- /* Read the name of a verb or a condition, or the start of a new ACL */
+ /* Read the name of a verb or a condition, or the start of a new ACL, which
+ can be started by a name, or by a macro definition. */
s = readconf_readname(name, sizeof(name), s);
- if (*s == ':')
- {
- if (negated || name[0] == 0)
- {
- *error = string_sprintf("malformed ACL name in \"%s\"", saveline);
- return NULL;
- }
- break;
- }
+ if (*s == ':' || isupper(name[0] && *s == '=')) return yield;
/* If a verb is unrecognized, it may be another condition or modifier that
continues the previous verb. */
Index: readconf.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/readconf.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- readconf.c 4 Apr 2005 10:33:49 -0000 1.6
+++ readconf.c 5 Apr 2005 13:58:35 -0000 1.7
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/readconf.c,v 1.6 2005/04/04 10:33:49 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/readconf.c,v 1.7 2005/04/05 13:58:35 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -435,6 +435,122 @@
+/*************************************************
+* Deal with an assignment to a macro *
+*************************************************/
+
+/* This function is called when a line that starts with an upper case letter is
+encountered. The argument "line" should contain a complete logical line, and
+start with the first letter of the macro name. The macro name and the
+replacement text are extracted and stored. Redefinition of existing,
+non-command line, macros is permitted using '==' instead of '='.
+
+Arguments:
+ s points to the start of the logical line
+
+Returns: nothing
+*/
+
+static void
+read_macro_assignment(uschar *s)
+{
+uschar name[64];
+int namelen = 0;
+BOOL redef = FALSE;
+macro_item *m;
+macro_item *mlast = NULL;
+
+while (isalnum(*s) || *s == '_')
+ {
+ if (namelen >= sizeof(name) - 1)
+ log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN,
+ "macro name too long (maximum is %d characters)", sizeof(name) - 1);
+ name[namelen++] = *s++;
+ }
+name[namelen] = 0;
+
+while (isspace(*s)) s++;
+if (*s++ != '=')
+ log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN, "malformed macro definition");
+
+if (*s == '=')
+ {
+ redef = TRUE;
+ s++;
+ }
+while (isspace(*s)) s++;
+
+/* If an existing macro of the same name was defined on the command line, we
+just skip this definition. It's an error to attempt to redefine a macro without
+redef set to TRUE, or to redefine a macro when it hasn't been defined earlier.
+It is also an error to define a macro whose name begins with the name of a
+previously defined macro. Note: it is documented that the other way round
+works. */
+
+for (m = macros; m != NULL; m = m->next)
+ {
+ int len = Ustrlen(m->name);
+
+ if (Ustrcmp(m->name, name) == 0)
+ {
+ if (!m->command_line && !redef)
+ log_write(0, LOG_CONFIG|LOG_PANIC_DIE, "macro \"%s\" is already "
+ "defined (use \"==\" if you want to redefine it", name);
+ break;
+ }
+
+ if (len < namelen && Ustrstr(name, m->name) != NULL)
+ log_write(0, LOG_CONFIG|LOG_PANIC_DIE, "\"%s\" cannot be defined as "
+ "a macro because previously defined macro \"%s\" is a substring",
+ name, m->name);
+
+ /* We cannot have this test, because it is documented that a substring
+ macro is permitted (there is even an example).
+ *
+ * if (len > namelen && Ustrstr(m->name, name) != NULL)
+ * log_write(0, LOG_CONFIG|LOG_PANIC_DIE, "\"%s\" cannot be defined as "
+ * "a macro because it is a substring of previously defined macro \"%s\"",
+ * name, m->name);
+ */
+
+ mlast = m;
+ }
+
+/* Check for an overriding command-line definition. */
+
+if (m != NULL && m->command_line) return;
+
+/* Redefinition must refer to an existing macro. */
+
+if (redef)
+ {
+ if (m == NULL)
+ log_write(0, LOG_CONFIG|LOG_PANIC_DIE, "can't redefine an undefined macro "
+ "\"%s\"", name);
+ }
+
+/* We have a new definition. The macro_item structure includes a final vector
+called "name" which is one byte long. Thus, adding "namelen" gives us enough
+room to store the "name" string. */
+
+else
+ {
+ m = store_get(sizeof(macro_item) + namelen);
+ if (macros == NULL) macros = m; else mlast->next = m;
+ Ustrncpy(m->name, name, namelen);
+ m->name[namelen] = 0;
+ m->next = NULL;
+ m->command_line = FALSE;
+ }
+
+/* Set the value of the new or redefined macro */
+
+m->replacement = string_copy(s);
+}
+
+
+
+
/*************************************************
* Read configuration line *
@@ -2631,65 +2747,7 @@
while ((s = get_config_line()) != NULL)
{
- if (isupper(s[0]))
- {
- macro_item *m;
- macro_item *mlast = NULL;
- uschar name[64];
- int namelen = 0;
-
- while (isalnum(*s) || *s == '_')
- {
- if (namelen >= sizeof(name) - 1)
- log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN,
- "macro name too long (maximum is %d characters)", sizeof(name) - 1);
- name[namelen++] = *s++;
- }
- name[namelen] = 0;
- while (isspace(*s)) s++;
- if (*s++ != '=') log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN,
- "malformed macro definition");
- while (isspace(*s)) s++;
-
- /* If an existing macro of the same name was defined on the command line,
- we just skip this definition. Otherwise it's an error to attempt to
- redefine a macro. It is also an error to define a macro whose name begins
- with the name of a previously-defined macro. */
-
- for (m = macros; m != NULL; m = m->next)
- {
- int len = Ustrlen(m->name);
-
- if (Ustrcmp(m->name, name) == 0)
- {
- if (m->command_line) break;
- log_write(0, LOG_CONFIG|LOG_PANIC_DIE, "macro \"%s\" is already "
- "defined", name);
- }
-
- if (len < namelen && Ustrstr(name, m->name) != NULL)
- log_write(0, LOG_CONFIG|LOG_PANIC_DIE, "\"%s\" cannot be defined as "
- "a macro because previously defined macro \"%s\" is a substring",
- name, m->name);
-
- mlast = m;
- }
- if (m != NULL) continue; /* Found an overriding command-line definition */
-
- m = store_get(sizeof(macro_item) + namelen);
- m->next = NULL;
- m->command_line = FALSE;
- if (mlast == NULL) macros = m; else mlast->next = m;
-
- /* This use of strcpy() is OK because we have obtained a block of store
- whose size is based on the length of "name". The definition of the
- macro_item structure includes a final vector called "name" which is one
- byte long. Thus, adding "namelen" gives us enough room to store the "name"
- string. */
-
- Ustrcpy(m->name, name);
- m->replacement = string_copy(s);
- }
+ if (isupper(s[0])) read_macro_assignment(s);
else if (Ustrncmp(s, "domainlist", 10) == 0)
read_named_list(&domainlist_anchor, &domainlist_count,
@@ -3071,16 +3129,33 @@
driver_instance *d = NULL;
uschar *buffer;
-/* Now process the configuration lines */
-
while ((buffer = get_config_line()) != NULL)
{
uschar name[64];
+ uschar *s;
+
+ /* Read the first name on the line and test for the start of a new driver. A
+ macro definition indicates the end of the previous driver. If this isn't the
+ start of a new driver, the line will be re-read. */
- /* Read the first name on the line and test for the start of a new driver.
- If this isn't the start of a new driver, the line will be re-read. */
+ s = readconf_readname(name, sizeof(name), buffer);
- uschar *s = readconf_readname(name, sizeof(name), buffer);
+ /* Handle macro definition, first finishing off the initialization of the
+ previous driver, if any. */
+
+ if (isupper(*name) && *s == '=')
+ {
+ if (d != NULL)
+ {
+ if (d->driver_name == NULL)
+ log_write(0, LOG_PANIC_DIE|LOG_CONFIG,
+ "no driver defined for %s \"%s\"", class, d->name);
+ (d->info->init)(d);
+ d = NULL;
+ }
+ read_macro_assignment(buffer);
+ continue;
+ }
/* If the line starts with a name terminated by a colon, we are at the
start of the definition of a new driver. The rest of the line must be
@@ -3128,7 +3203,8 @@
continue;
}
- /* Give an error if we have not set up a current driver yet. */
+ /* Not the start of a new driver. Give an error if we have not set up a
+ current driver yet. */
if (d == NULL) log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN,
"%s name missing", class);
@@ -3582,7 +3658,8 @@
return;
}
-/* Read each ACL and add it into the tree */
+/* Read each ACL and add it into the tree. Macro (re)definitions are allowed
+between ACLs. */
acl_line = get_config_line();
@@ -3593,8 +3670,15 @@
uschar *error;
p = readconf_readname(name, sizeof(name), acl_line);
- if (*p != ':')
- log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN, "missing ACL name");
+ if (isupper(*name) && *p == '=')
+ {
+ read_macro_assignment(acl_line);
+ acl_line = get_config_line();
+ continue;
+ }
+
+ if (*p != ':' || name[0] == 0)
+ log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN, "missing or malformed ACL name");
node = store_get(sizeof(tree_node) + Ustrlen(name));
Ustrcpy(node->name, name);
Index: 002
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/confs/002,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- 002 22 Mar 2005 14:11:55 -0000 1.5
+++ 002 5 Apr 2005 13:58:35 -0000 1.6
@@ -14,6 +14,7 @@
accept_8bitmime
acl_not_smtp = check_local_message
+acl_not_smtp_mime = check_mime
acl_smtp_auth = check_auth
acl_smtp_connect = check_connect
acl_smtp_data = check_message
Index: 149
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/confs/149,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 149 8 Oct 2004 14:49:15 -0000 1.1
+++ 149 5 Apr 2005 13:58:35 -0000 1.2
@@ -17,11 +17,18 @@
# ----- Main settings -----
+acl_smtp_connect = acl1
+
hold_domains = "a\x65b :\
c.d"
host_lookup = XXXX + XXXX
hosts_treat_as_local = ABCD_XYZ and ABCD
+
+ABCD == 1234
+ABCD_XYZ == ABCD_XYZ plus extra
+delay_warning_condition = ABCD_XYZ + ABCD
+
ignore_fromline_hosts = test.ex : \
test2.ex :\
@@ -36,6 +43,37 @@
queue_smtp_domains = \
x#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx123456789012345678901234567890 + \
x#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx123456789012345678901234567890
+
+
+# ----- Routers -----
+
+begin routers
+
+MAC2 = macro2 definition
+MAC2 == new macro2
+
+R1:
+ driver = accept
+ router_home_directory = MAC2 + ABCD
+ transport = T1
+
+
+#----- Transports -----
+
+begin transports
+
+T1:
+ driver = smtp
+
+
+#----- ACL -----
+
+begin acl
+
+ACLMAC=testing,testing
+
+acl1:
+ deny message = ACLMAC
# ----- Rewrite -----
Index: 149
====================================================================
1999-03-02 09:44:33 U=ph10 rejected connection in "connect" ACL: testing,testing
Index: 149
====================================================================
1999-03-02 09:44:33 U=ph10 rejected connection in "connect" ACL: testing,testing
Index: 149
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/scripts/149,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 149 8 Oct 2004 14:49:52 -0000 1.1
+++ 149 5 Apr 2005 13:58:35 -0000 1.2
@@ -1,8 +1,15 @@
-0 Continuation lines and long lines
-exim -bP percent_hack_domains hold_domains queue_domains host_lookup queue_smtp_domains hosts_treat_as_local ignore_fromline_hosts
+0 Continuation lines and long lines and macro (re)definition
+exim -bP percent_hack_domains hold_domains queue_domains host_lookup queue_smtp_domains hosts_treat_as_local ignore_fromline_hosts delay_warning_condition
****
0
exim -brw x@???
****
0
exim -brt x@???
+****
+0
+exim -bP router R1
+****
+0
+exim -bs
+****
Index: 001
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/001,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- 001 22 Mar 2005 14:11:55 -0000 1.7
+++ 001 5 Apr 2005 13:58:35 -0000 1.8
@@ -1,5 +1,6 @@
no_accept_8bitmime
acl_not_smtp =
+acl_not_smtp_mime =
acl_smtp_auth =
acl_smtp_connect =
acl_smtp_data =
Index: 002
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/002,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- 002 22 Mar 2005 14:11:55 -0000 1.5
+++ 002 5 Apr 2005 13:58:35 -0000 1.6
@@ -1,5 +1,6 @@
accept_8bitmime
acl_not_smtp = check_local_message
+acl_not_smtp_mime = check_mime
acl_smtp_auth = check_auth
acl_smtp_connect = check_connect
acl_smtp_data = check_message
Index: 149
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/149,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 149 8 Oct 2004 14:50:13 -0000 1.1
+++ 149 5 Apr 2005 13:58:35 -0000 1.2
@@ -5,6 +5,7 @@
queue_smtp_domains = x#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx123456789012345678901234567890 + x#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx123456789012345678901234567890
hosts_treat_as_local = abcdxyz and abcd + abcdxyz
ignore_fromline_hosts = test.ex : test2.ex :test3.ex
+delay_warning_condition = abcdxyz plus extra + 1234
sender: x@???
from: x@???
to: x@???
@@ -14,3 +15,48 @@
env-from: x@???
env-to: x@???
Retry rule: * * F,1h,15m; F,1d,30m;
+address_data =
+address_test
+cannot_route_message =
+no_caseful_local_part
+no_check_local_user
+condition =
+debug_print =
+no_disable_logging
+domains =
+driver = accept
+errors_to =
+expn
+no_fail_verify_recipient
+no_fail_verify_sender
+fallback_hosts =
+group =
+headers_add =
+headers_remove =
+ignore_target_hosts =
+no_initgroups
+local_part_prefix =
+no_local_part_prefix_optional
+local_part_suffix =
+no_local_part_suffix_optional
+local_parts =
+log_as_local
+more
+no_pass_on_timeout
+pass_router =
+redirect_router =
+require_files =
+no_retry_use_local_part
+router_home_directory = new macro2 + 1234
+self = freeze
+senders =
+translate_ip_address =
+transport = T1
+transport_current_directory =
+transport_home_directory =
+no_unseen
+user =
+no_verify_only
+verify_recipient
+verify_sender
+550 testing,testing