ph10 2005/06/20 14:58:23 BST
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src acl.c expand.c
exim-test-orig/AutoTest/log 590
exim-test-orig/AutoTest/rejectlog 590
exim-test-orig/AutoTest/scripts 590
exim-test-orig/AutoTest/stdout 001 002 590
Log:
Compiling with DomainKeys caused the test suite to show up some bugs:
(1) The filter variables $n0-$n9 and $sn0-$sn9 were broken.
(2) The table of control names was missing some conditional names,
leading to the wrong name in some error messages.
Revision Changes Path
1.165 +9 -0 exim/exim-doc/doc-txt/ChangeLog
1.40 +36 -21 exim/exim-src/src/acl.c
1.33 +5 -5 exim/exim-src/src/expand.c
1.3 +1 -0 exim/exim-test-orig/AutoTest/log/590
1.2 +1 -0 exim/exim-test-orig/AutoTest/rejectlog/590
1.2 +3 -0 exim/exim-test-orig/AutoTest/scripts/590
1.12 +6 -0 exim/exim-test-orig/AutoTest/stdout/001
1.10 +6 -0 exim/exim-test-orig/AutoTest/stdout/002
1.2 +1 -0 exim/exim-test-orig/AutoTest/stdout/590
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.164
retrieving revision 1.165
diff -u -r1.164 -r1.165
--- ChangeLog 17 Jun 2005 14:20:48 -0000 1.164
+++ ChangeLog 20 Jun 2005 13:58:22 -0000 1.165
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.164 2005/06/17 14:20:48 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.165 2005/06/20 13:58:22 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -162,6 +162,15 @@
PH/21 Added another message to those in 4.51/PH/42, namely "All relevant MX
records point to non-existent hosts".
+
+PH/22 Fixed some oversights/typos causing bugs when Exim is compiled with
+ experimental DomainKeys support:
+
+ (1) The filter variables $n0-$n9 and $sn0-$sn9 were broken.
+ (2) On an error such as an illegally used "control", the wrong name for
+ the control was given.
+
+ These problems did NOT occur unless DomainKeys support was compiled.
Exim version 4.51
Index: acl.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/acl.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- acl.c 10 Jun 2005 19:27:05 -0000 1.39
+++ acl.c 20 Jun 2005 13:58:22 -0000 1.40
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/acl.c,v 1.39 2005/06/10 19:27:05 fanf2 Exp $ */
+/* $Cambridge: exim/exim-src/src/acl.c,v 1.40 2005/06/20 13:58:22 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -81,7 +81,9 @@
"log_message", "logwrite", and "set" are modifiers that look like conditions
but always return TRUE. They are used for their side effects. */
-static uschar *conditions[] = { US"acl", US"authenticated",
+static uschar *conditions[] = {
+ US"acl",
+ US"authenticated",
#ifdef EXPERIMENTAL_BRIGHTMAIL
US"bmi_optin",
#endif
@@ -125,11 +127,41 @@
#endif
US"verify" };
-/* ACL control names */
-static uschar *controls[] = { US"error", US"caseful_local_part",
+/* Return values from decode_control(); keep in step with the table of names
+that follows! */
+
+enum {
+#ifdef EXPERIMENTAL_BRIGHTMAIL
+ CONTROL_BMI_RUN,
+#endif
+#ifdef EXPERIMENTAL_DOMAINKEYS
+ CONTROL_DK_VERIFY,
+#endif
+ CONTROL_ERROR, CONTROL_CASEFUL_LOCAL_PART, CONTROL_CASELOWER_LOCAL_PART,
+ CONTROL_ENFORCE_SYNC, CONTROL_NO_ENFORCE_SYNC, CONTROL_FREEZE,
+ CONTROL_QUEUE_ONLY, CONTROL_SUBMISSION,
+#ifdef WITH_CONTENT_SCAN
+ CONTROL_NO_MBOX_UNSPOOL,
+#endif
+ CONTROL_FAKEDEFER, CONTROL_FAKEREJECT, CONTROL_NO_MULTILINE };
+
+/* ACL control names; keep in step with the table above! */
+
+static uschar *controls[] = {
+ #ifdef EXPERIMENTAL_BRIGHTMAIL
+ US"bmi_run",
+ #endif
+ #ifdef EXPERIMENTAL_DOMAINKEYS
+ US"dk_verify",
+ #endif
+ US"error", US"caseful_local_part",
US"caselower_local_part", US"enforce_sync", US"no_enforce_sync", US"freeze",
- US"queue_only", US"submission", US"no_multiline"};
+ US"queue_only", US"submission",
+ #ifdef WITH_CONTENT_SCAN
+ US"no_mbox_unspool",
+ #endif
+ US"no_multiline"};
/* Flags to indicate for which conditions /modifiers a string expansion is done
at the outer level. In the other cases, expansion already occurs in the
@@ -411,23 +443,6 @@
0 /* verify */
};
-
-/* Return values from decode_control() */
-
-enum {
-#ifdef EXPERIMENTAL_BRIGHTMAIL
- CONTROL_BMI_RUN,
-#endif
-#ifdef EXPERIMENTAL_DOMAINKEYS
- CONTROL_DK_VERIFY,
-#endif
- CONTROL_ERROR, CONTROL_CASEFUL_LOCAL_PART, CONTROL_CASELOWER_LOCAL_PART,
- CONTROL_ENFORCE_SYNC, CONTROL_NO_ENFORCE_SYNC, CONTROL_FREEZE,
- CONTROL_QUEUE_ONLY, CONTROL_SUBMISSION,
-#ifdef WITH_CONTENT_SCAN
- CONTROL_NO_MBOX_UNSPOOL,
-#endif
- CONTROL_FAKEDEFER, CONTROL_FAKEREJECT, CONTROL_NO_MULTILINE };
/* Bit map vector of which controls are not allowed at certain times. For
each control, there's a bitmap of dis-allowed times. For some, it is easier to
Index: expand.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/expand.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- expand.c 20 Jun 2005 11:20:41 -0000 1.32
+++ expand.c 20 Jun 2005 13:58:22 -0000 1.33
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/expand.c,v 1.32 2005/06/20 11:20:41 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/expand.c,v 1.33 2005/06/20 13:58:22 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -1261,10 +1261,6 @@
switch (var_table[middle].type)
{
- case vtype_filter_int:
- if (!filter_running) return NULL;
- /* Fall through */
-
#ifdef EXPERIMENTAL_DOMAINKEYS
case vtype_dk_verify:
@@ -1310,6 +1306,10 @@
return (s == NULL)? US"" : s;
#endif
+ case vtype_filter_int:
+ if (!filter_running) return NULL;
+ /* Fall through */
+ /* VVVVVVVVVVVV */
case vtype_int:
sprintf(CS var_buffer, "%d", *(int *)(var_table[middle].value)); /* Integer */
return var_buffer;
@@ -1966,7 +1966,7 @@
rc = match_isinlist(sub[0], &(sub[1]), 0, &localpartlist_anchor, NULL,
MCL_LOCALPART + MCL_NOEXPAND, TRUE, NULL);
/* Fall through */
-
+ /* VVVVVVVVVVVV */
MATCHED_SOMETHING:
switch(rc)
{
Index: 590
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/log/590,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- 590 17 May 2005 15:00:04 -0000 1.2
+++ 590 20 Jun 2005 13:58:23 -0000 1.3
@@ -3,3 +3,4 @@
1999-03-02 09:44:33 U=ph10 temporarily rejected EHLO or HELO xxx: cannot use "control=submission" in EHLO or HELO ACL
1999-03-02 09:44:33 ACL for QUIT returned ERROR: cannot use "control=freeze" in QUIT ACL
1999-03-02 09:44:33 10HmaY-0005vi-00 F=<ph10@???> rejected by non-SMTP ACL: cannot use "control=enforce_sync" in non-SMTP ACL
+1999-03-02 09:44:33 U=ph10 temporarily rejected connection in "connect" ACL: cannot use "control=no_mbox_unspool" in connection ACL
Index: 590
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/rejectlog/590,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 590 18 Oct 2004 11:36:23 -0000 1.1
+++ 590 20 Jun 2005 13:58:23 -0000 1.2
@@ -17,3 +17,4 @@
I Message-Id: <E10HmaY-0005vi-00@???>
F From: Philip Hazel <ph10@???>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+1999-03-02 09:44:33 U=ph10 temporarily rejected connection in "connect" ACL: cannot use "control=no_mbox_unspool" in connection ACL
Index: 590
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/scripts/590,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 590 18 Oct 2004 11:36:23 -0000 1.1
+++ 590 20 Jun 2005 13:58:23 -0000 1.2
@@ -28,4 +28,7 @@
1
exim -DACL=not_smtp -DCONTROL=enforce_sync -oep ph10
****
+0
+exim -DACL=smtp_connect -DCONTROL=no_mbox_unspool -bs
+****
no_msglog_check
Index: 001
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/001,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- 001 10 May 2005 10:19:11 -0000 1.11
+++ 001 20 Jun 2005 13:58:23 -0000 1.12
@@ -718,6 +718,12 @@
connection_max_messages = 500
data_timeout = 5m
delay_after_cutoff
+dk_canon =
+dk_domain =
+dk_headers =
+dk_private_key =
+dk_selector =
+dk_strict =
dns_qualify_single
no_dns_search_parents
fallback_hosts =
Index: 002
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/002,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- 002 10 May 2005 10:19:11 -0000 1.9
+++ 002 20 Jun 2005 13:58:23 -0000 1.10
@@ -1319,6 +1319,12 @@
connection_max_messages = 0
data_timeout = 5m
delay_after_cutoff
+dk_canon =
+dk_domain =
+dk_headers =
+dk_private_key =
+dk_selector =
+dk_strict =
dns_qualify_single
no_dns_search_parents
fallback_hosts = localhost
Index: 590
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/590,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 590 18 Oct 2004 11:36:23 -0000 1.1
+++ 590 20 Jun 2005 13:58:23 -0000 1.2
@@ -15,3 +15,4 @@
221 myhost.test.ex closing connection
220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
221 myhost.test.ex closing connection
+451 Temporary local problem - please try later