summaryrefslogtreecommitdiff
blob: cf6084456bae010f3b4b553fd80e62108051b85c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
--- cyrus-imapd-2.2.10/imap/message.c.munge8bit	2004-02-27 18:44:55.000000000 +0100
+++ cyrus-imapd-2.2.10/imap/message.c	2004-07-27 18:20:13.725563440 +0200
@@ -227,6 +227,7 @@
     int n;
     int sawcr = 0, sawnl;
     int reject8bit = config_getswitch(IMAPOPT_REJECT8BIT);
+    int munge8bit = config_getswitch(IMAPOPT_MUNGE8BIT);
     int inheader = 1, blankline = 1;
 
     while (size) {
@@ -262,7 +263,7 @@
 			/* We have been configured to reject all mail of this
 			   form. */
 			if (!r) r = IMAP_MESSAGE_CONTAINS8BIT;
-		    } else {
+		    } else if (munge8bit) {
 			/* We have been configured to munge all mail of this
 			   form. */
 			*p = 'X';
--- cyrus-imapd-2.2.10/imap/spool.c.munge8bit	2004-03-04 17:09:34.000000000 +0100
+++ cyrus-imapd-2.2.10/imap/spool.c	2004-07-27 18:20:13.726563149 +0200
@@ -140,6 +140,7 @@
     state s = NAME_START;
     int r = 0;
     int reject8bit = config_getswitch(IMAPOPT_REJECT8BIT);
+    int munge8bit = config_getswitch(IMAPOPT_MUNGE8BIT);
     const char **skip = NULL;
 
     if (namelen == 0) {
@@ -266,7 +267,7 @@
 			   form. */
 			r = IMAP_MESSAGE_CONTAINS8BIT;
 			goto ph_error;
-		    } else {
+		    } else if (munge8bit) {
 			/* We have been configured to munge all mail of this
 			   form. */
 			c = 'X';
--- cyrus-imapd-2.2.10/lib/imapoptions.munge8bit	2004-07-21 21:07:45.000000000 +0200
+++ cyrus-imapd-2.2.10/lib/imapoptions	2004-07-27 18:20:13.722564314 +0200
@@ -458,6 +458,12 @@
 { "mboxlist_db", "skiplist", STRINGLIST("flat", "berkeley", "skiplist")}
 /* The cyrusdb backend to use for the mailbox list. */
 
+{ "munge8bit", 1, SWITCH }
+/* If enabled, lmtpd munges messages with 8-bit characters.  These characters
+   are changed to .  If \fBreject8bit\fR is enabled, setting \fBmunge8bit\fR
+   has no effect.  (A proper soultion to non-ASCII characters in headers is
+   offered by RFC 2047 and its predecessors.) */
+
 # xxx badly worded
 { "mupdate_connections_max", 128, INT }
 /* The max number of connections that a mupdate process will allow, this
@@ -670,9 +676,7 @@
 
 { "reject8bit", 0, SWITCH }
 /* If enabled, lmtpd rejects messages with 8-bit characters in the
-   headers.  Otherwise, 8-bit characters are changed to `X'.  (A
-   proper soultion to non-ASCII characters in headers is offered by  
-   RFC 2047 and its predecessors.) */
+   headers. */
 
 { "rfc2046_strict", 0, SWITCH }
 /* If enabled, imapd will be strict (per RFC 2046) when matching MIME
--- cyrus-imapd-2.2.10/man/deliver.8.munge8bit	2004-06-21 20:40:10.000000000 +0200
+++ cyrus-imapd-2.2.10/man/deliver.8	2004-07-27 18:20:13.719565188 +0200
@@ -147,8 +147,10 @@
 Accept messages using the LMTP protocol.
 .SH NOTES
 Depending on the setting of \fBreject8bit\fR in \fBimapd.conf(5)\fR, deliver
-either rejects messages with 8-bit-set characters in the headers or 
-changes these characters to `X'.
+either rejects/accepts messages with 8-bit-set characters in the headers.
+If we accept messages with 8-bit-set characters in the headers, then depending
+on the setting of \fBmunge8bit\fR, these characters are either left un-touched
+or changed to .
 This is because such characters can't be interpreted since the
 character set is not known, although some communities not well-served by
 US-ASCII assume that those characters can be used to represent characters not