Mercurial > masqmail
annotate admin/config-transition @ 323:29de6a1c4538
Fixed an important bug with folded headers!
g_strconcat() returns a *copy* of the string, but hdr->value still
pointed to the old header (which probably was a memory leak, too).
If the folded part had been quite small it was likely that the new
string was at the same position as the old one, thus making everything
go well. But if pretty long headers were folded several times it was
likely that the new string was allocated somewhere else in memory,
thus breaking things. In result mails to lots of recipients (folded
header) were frequently only sent to the ones in the first line. Sorry
for the inconvenience.
author | meillo@marmaro.de |
---|---|
date | Fri, 03 Jun 2011 09:47:27 +0200 |
parents | 55b7bde95d37 |
children | 08932c629849 |
rev | line source |
---|---|
219 | 1 #!/bin/sh |
2 # | |
3 # check masqmail config files for options that are obsolete | |
4 # | |
5 # 2010 markus schnalke <meillo@marmaro.de> | |
6 | |
7 if [ $# -eq 0 ] ; then | |
311
e230bcd0f1c6
removed protocol option from route config
meillo@marmaro.de
parents:
310
diff
changeset
|
8 echo "usage: config-transition CONFIGFILE..." >&2 |
219 | 9 exit 1 |
10 fi | |
11 | |
12 awkscript="/tmp/masqmail-config-transition-$$" | |
13 | |
14 trap 'rm -f "$awkscript"; exit' INT QUIT TERM EXIT | |
15 | |
16 cat >"$awkscript" <<! | |
17 # Because of the Here-document, escape (with backslash) these characters: | |
18 # backslash, dollar, backtick | |
19 BEGIN { | |
20 | |
21 ######## START OF CHECKS ######## | |
22 | |
23 # Rules look like this: | |
24 # | |
25 # check["regexp"] = "conf-kind" SUBSEP "version-info" SUBSEP "verbose-description" | |
26 # | |
27 # Meaning of the strings: | |
28 # - regexp: is also used as the name in the normal listing | |
29 # - conf-kind: in which kind of config the option appears (conf, route, get) | |
30 # - version-info: when it was removed | |
31 # - verbose-description: how to do it now | |
32 | |
33 | |
34 # conf file | |
35 | |
36 check["remote_port"] = "conf" SUBSEP "Removed in 0.3.0" SUBSEP "\ | |
37 Use 'mail_host' in the route configuration instead. \ | |
38 " | |
39 | |
40 check["mbox_default.*maildir"] = "conf" SUBSEP "Removed in 0.3.0" SUBSEP "\ | |
41 Native maildir support was removed completely. \ | |
42 Use an MDA, e.g. procmail, to deliver to Maildir mail folder. \ | |
43 " | |
44 | |
45 check["maildir_users"] = "conf" SUBSEP "Removed in 0.3.0" SUBSEP "\ | |
46 Native maildir support was removed completely. \ | |
47 Use an MDA, e.g. procmail, to deliver to Maildir mail folder. \ | |
48 " | |
49 | |
50 check["mserver_iface"] = "conf" SUBSEP "Removed in 0.3.0" SUBSEP "\ | |
51 Native mserver support was removed from masqmail. \ | |
52 Use the mservdetect tool with online_detect=pipe instead. \ | |
53 " | |
54 | |
55 check["get\\\\."] = "conf" SUBSEP "Removed in 0.3.0" SUBSEP "\ | |
56 The POP3 client was removed from masqmail. \ | |
57 Use a dedicated POP3 client, e.g. fetchmail, instead. \ | |
58 " | |
59 | |
60 check["online_gets\\\\."] = "conf" SUBSEP "Removed in 0.3.0" SUBSEP "\ | |
61 The POP3 client was removed from masqmail. \ | |
62 Use a dedicated POP3 client, e.g. fetchmail, instead. \ | |
63 " | |
64 | |
243
e758296de02d
renamed `alias_local_caseless' to `caseless_matching'
markus schnalke <meillo@marmaro.de>
parents:
227
diff
changeset
|
65 check["alias_local_caseless"] = "conf" SUBSEP "Renamed in 0.3.1" SUBSEP "\ |
e758296de02d
renamed `alias_local_caseless' to `caseless_matching'
markus schnalke <meillo@marmaro.de>
parents:
227
diff
changeset
|
66 It is now called 'caseless_matching' instead. \ |
e758296de02d
renamed `alias_local_caseless' to `caseless_matching'
markus schnalke <meillo@marmaro.de>
parents:
227
diff
changeset
|
67 " |
e758296de02d
renamed `alias_local_caseless' to `caseless_matching'
markus schnalke <meillo@marmaro.de>
parents:
227
diff
changeset
|
68 |
310
f10a56dc7481
reworked online_detect to the simpler online_query
meillo@marmaro.de
parents:
243
diff
changeset
|
69 check["online_detect"] = "conf" SUBSEP "Removed in 0.3.2" SUBSEP "\ |
317
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
70 Distilled to online_query. \ |
310
f10a56dc7481
reworked online_detect to the simpler online_query
meillo@marmaro.de
parents:
243
diff
changeset
|
71 " |
f10a56dc7481
reworked online_detect to the simpler online_query
meillo@marmaro.de
parents:
243
diff
changeset
|
72 |
f10a56dc7481
reworked online_detect to the simpler online_query
meillo@marmaro.de
parents:
243
diff
changeset
|
73 check["online_file"] = "conf" SUBSEP "Removed in 0.3.2" SUBSEP "\ |
f10a56dc7481
reworked online_detect to the simpler online_query
meillo@marmaro.de
parents:
243
diff
changeset
|
74 Use online_query=\"/bin/cat /path/to/file\" instead. \ |
f10a56dc7481
reworked online_detect to the simpler online_query
meillo@marmaro.de
parents:
243
diff
changeset
|
75 " |
f10a56dc7481
reworked online_detect to the simpler online_query
meillo@marmaro.de
parents:
243
diff
changeset
|
76 |
f10a56dc7481
reworked online_detect to the simpler online_query
meillo@marmaro.de
parents:
243
diff
changeset
|
77 check["online_pipe"] = "conf" SUBSEP "Renamed in 0.3.2" SUBSEP "\ |
f10a56dc7481
reworked online_detect to the simpler online_query
meillo@marmaro.de
parents:
243
diff
changeset
|
78 Now known as online_query. online_detect=pipe is not needed anymore. \ |
f10a56dc7481
reworked online_detect to the simpler online_query
meillo@marmaro.de
parents:
243
diff
changeset
|
79 " |
f10a56dc7481
reworked online_detect to the simpler online_query
meillo@marmaro.de
parents:
243
diff
changeset
|
80 |
219 | 81 # route files |
82 | |
83 check["pop3_login"] = "route" SUBSEP "Removed in 0.3.0" SUBSEP "\ | |
84 POP-before-SMTP login function was removed completely. \ | |
85 SMTP AUTH supersedes it today. \ | |
86 If you though rely on it, stay with masqmail-0.2.x or run an arbitrary POP client before. \ | |
87 " | |
88 | |
89 check["do_ssl"] = "route" SUBSEP "Ignored by masqmail" SUBSEP "\ | |
90 Please report to the mailing list at <masqmail@marmaro.de> that you used this option. \ | |
91 We still don't know the rationale behind this option. \ | |
92 All we have is a comment in the code saying: This option is used by sqilconf. \ | |
93 " | |
94 | |
311
e230bcd0f1c6
removed protocol option from route config
meillo@marmaro.de
parents:
310
diff
changeset
|
95 check["protocol"] = "route" SUBSEP "Removed in 0.3.2" SUBSEP "\ |
e230bcd0f1c6
removed protocol option from route config
meillo@marmaro.de
parents:
310
diff
changeset
|
96 If pipe is given, pipe will be used, otherwise smtp will be used. \ |
e230bcd0f1c6
removed protocol option from route config
meillo@marmaro.de
parents:
310
diff
changeset
|
97 " |
e230bcd0f1c6
removed protocol option from route config
meillo@marmaro.de
parents:
310
diff
changeset
|
98 |
317
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
99 check["(^|[ ])allowed_return_paths"] = "route" SUBSEP "Removed in 0.3.2" SUBSEP "\ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
100 Replaced by 'allowed_senders'. \ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
101 " |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
102 |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
103 check["not_allowed_return_paths"] = "route" SUBSEP "Removed in 0.3.2" SUBSEP "\ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
104 Replaced by 'denied_senders'. \ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
105 " |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
106 |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
107 check["(^|[ ])allowed_mail_locals"] = "route" SUBSEP "Removed in 0.3.2" SUBSEP "\ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
108 Replaced by 'allowed_senders', if neither wildcards nor '@' is used. \ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
109 " |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
110 |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
111 check["not_allowed_mail_locals"] = "route" SUBSEP "Removed in 0.3.2" SUBSEP "\ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
112 Replaced by 'denied_senders', if neither wildcards nor '@' is used. \ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
113 " |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
114 |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
115 check["(^|[ ])allowed_rcpt_domains"] = "route" SUBSEP "Removed in 0.3.2" SUBSEP "\ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
116 Replaced by 'allowed_recipients', if the values are prepended with \ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
117 '*@', because 'allowed_recipients' matches complete addresses not just \ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
118 domains. \ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
119 " |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
120 |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
121 check["not_allowed_rcpt_domains"] = "route" SUBSEP "Removed in 0.3.2" SUBSEP "\ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
122 Replaced by 'denied_recipients', if the values are prepended with \ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
123 '*@', because 'allowed_recipients' matches complete addresses not just \ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
124 domains. \ |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
125 " |
55b7bde95d37
reworked allowed and denied addrs for routes
meillo@marmaro.de
parents:
311
diff
changeset
|
126 |
219 | 127 # get files |
128 | |
129 # already covered by the get.* and online_gets.* options in the conf | |
130 # file. This check is just to make sure, because one might only check | |
131 # the get file. | |
132 # We don't check for the other get file options, which are: | |
133 # protocol server port wrapper user pass address return_path do_keep | |
134 # do_uidl do_uidl_dele max_size max_size_delete max_count resolve_list | |
135 | |
136 check["protocol.*pop"] = "get" SUBSEP "Removed in 0.3.0" SUBSEP "\ | |
137 The POP3 client was removed from masqmail. \ | |
138 Use a dedicated POP3 client, e.g. fetchmail, instead. \ | |
139 " | |
140 | |
141 | |
142 ######## END OF CHECK DEFINITIONS ######## | |
143 } | |
144 | |
145 function checkcomment() { | |
146 if (/^[ \t]*\#/) { | |
147 return " (in a comment)" | |
148 } | |
149 } | |
150 | |
151 { | |
152 for (key in check) { | |
153 if (\$0 !~ key) { | |
154 continue; | |
155 } | |
156 # we have a match | |
157 split(check[key], a, SUBSEP); # array index starts with 1 | |
158 printf("%s:%d: [%s] %s%s\n", FILENAME, NR, a[1], key, checkcomment()); | |
159 cmd = "fold -sw 70 | sed 's,^,\t,'" | |
311
e230bcd0f1c6
removed protocol option from route config
meillo@marmaro.de
parents:
310
diff
changeset
|
160 print "\t>>>> " \$0 " <<<<" |
e230bcd0f1c6
removed protocol option from route config
meillo@marmaro.de
parents:
310
diff
changeset
|
161 print a[3] | cmd |
e230bcd0f1c6
removed protocol option from route config
meillo@marmaro.de
parents:
310
diff
changeset
|
162 close(cmd) |
e230bcd0f1c6
removed protocol option from route config
meillo@marmaro.de
parents:
310
diff
changeset
|
163 print "\t" a[2] |
e230bcd0f1c6
removed protocol option from route config
meillo@marmaro.de
parents:
310
diff
changeset
|
164 print "" |
219 | 165 } |
166 } | |
167 | |
168 ! | |
169 | |
170 | |
171 for i do | |
311
e230bcd0f1c6
removed protocol option from route config
meillo@marmaro.de
parents:
310
diff
changeset
|
172 awk -f "$awkscript" "$i" |
219 | 173 done |