1
ChangeLog for Dean Strik's IPv6 patch for Postfix. The patch is based on
2
PLD's patch, which in turn seems to be based on KAME's. For more information:
4
http://www.ipnet6.org/postfix/
6
---------------------------------------------------------------------
8
Version 1.25 Postfix release 2.1.3
10
Postfix snapshot 2.2-20040616
12
Bugfix: Misplaced myfree() caused a small memory leak. Reported
13
by Christian von Roques.
14
File: util/match_ops.c
16
Removed the colon (:) from the characters XFORWARD replaces by
17
a question mark (IPv6 addresses looked like 2001?610?1108?5010??1
18
in logging). Reported by Philipp Morger.
21
Version 1.24 Postfix release 2.1.1
22
Postfix release 2.0.20
23
Postfix snapshot 2.0.19-20040312
24
Postfix snapshot 2.2-20040504
26
Bugfix: Prefixlen non-null host portion validation (in CIDR maps
27
for example) yielded incorrect results sometimes because signed
28
arithmetic was used instead of unsigned.
29
File: util/match_ops.c
31
Patch correction: The TLS+IPv6 patch for Postfix 2.1.0 missed
32
the master.cf update (used for new installations). Added it
35
Version 1.23 Postfix release 2.1.0
36
Postfix release 2.0.20
37
Postfix snapshot 2.0.19-20040312
39
Patch fixes: Several code fixes to make the patch compile
40
and work correctly when compiled without IPv6 support.
42
Bugfix (Solaris only?): address family length was not updated
43
which could cause client hostname validation errors.
44
File: smtpd/smtpd_peer.c
46
Portability: added support for Darwin 7.3+. This may need
49
Cleanup: Restructure and redocument interface address
50
retrieval functions. (This reduced the number of preprocessor
51
statements from 99 to 93 ;)
52
File: util/inet_addr_local.c
54
Cleanup: make several explicit casts to have compilers shut
55
their pie holes about uninteresting things.
57
Version 1.22 Postfix release 2.0.19
58
Postfix snapshot 2.0.19-20040312
60
Feature: Support "inet_interfaces = IPv4:all" and
61
"inet_interfaces = IPv6:all", to restrict postfix to use
62
either IPv4-only or IPv6-only. A more complete implementation
63
will be part of a future patch. (Slightly modified) patch by
65
Files: util/interfaces_to_af.[ch], util/inet_addr_local.c,
66
global/own_inet_addr.c, global/wildcard_inet_addr.[ch],
69
Bugfix: In Postfix snapshots, a #define was misplaced with
70
the effect that IPv6 subnets were not included in auto-
71
generated $mynetworks (i.e., mynetworks not defined in main.cf,
72
when also mynetworks_style=subnet) on Linux 2.x systems.
73
File: utils/sys_defs.h
75
Version 1.21a Postfix snapshots 2.0.18-2004{0122,0205,0209}
78
TLS/snapshot version: Update TLS patch to 0.8.18-20040122.
79
Performed as a total repatch. 0.8.18 is cleaner with tls_*
80
variables if TLS is not actually compiled in.
82
Version 1.21 Postfix releases 2.0.18 - 2.0.19
83
Postfix snapshot 2.0.16-20031231
85
Bugfix: The SMTP client could fail to setup a connection,
86
erroring with a bogus "getaddrinfo(...): hostname nor servname
87
provided" warning, because the wrong address was selected.
88
File: smtp/smtp_connect.c
90
Safety: in dynamically growing data structures, update the
91
length info after (instead of before) updating the data size.
92
File: util/inet_addr_list.c
94
Version 1.20 Postfix release 2.0.16
95
Postfix snapshot 2.0.16-20031207
97
Bugfix: The SMTP client would abort when binding to specific
99
File: smtp/smtp_connect.c
101
Synchronisation/bugfix: LMTP source address binding is identical
102
to the SMTP source binding setup, avoiding the need for
103
lmtp_bind_address(6) if inet_interfaces is set to a single
104
host for an address family.
105
File: lmtp/lmtp_connect.c
107
Version 1.19 Postfix release 2.0.16
108
Postfix snapshot 2.0.16-20031207
110
Bugfix: Synchronisation of TLS patches in snapshots of 1.18[ab]
111
was not complete, causing a crash of smtpd if used with the new
115
Bugfix: SMTP source address binding based on a single hostname
116
in inet_interfaces did not work since the code counted IPv4 and
117
IPv6 addresses instead of only the used address family. Fixed,
118
thereby no longer requiring exact specification of
119
smtp_bind_address(6) in this case.
120
File: smtp/smtp_connect.c
122
Bugfix: The QMQP sink server did not compile correctly. This
123
program, part of smtpstone tools, is not compiled or installed
125
File: smtpstone/qmqp-sink.c
127
Bugfix: NI_WITHSCOPEID was not correctly defined everywhere,
128
which could result in EAI_BADFLAGS. Changed location of
129
definition to correct it.
130
Files: util/sys_defs.h, util/inet_addr_list.h
132
Version 1.18b Postfix snapshot 2.0.16-20030921
134
IPv6 support: Added IPv6-enabled code to the new snapshot
135
check_*_{ns,mx}_access restrictions.
136
File: smtpd/smtpd_check.c
138
Version 1.18a Postfix release 2.0.16
140
Update (TLS patches): Updated Lutz Jaenicke's TLS patch to
141
version 0.8.16. See pfixtls/ChangeLog for details.
142
Diff contributed by Tuomo Soini.
144
The TLS+IPv6 patch now contains the original TLS patch
145
documentation from Lutz Jaenicke.
147
Version 1.18 Postfix releases 2.0.14 - 2.0.15
148
Postfix snapshot 2.0.14-20030812
150
Bugfix: Perform actual hostname verification in the SMTP
151
and QMTP servers. This was never supported in the IPv6
152
patch. Reported by Wolfgang S. Rupprecht.
153
Files: smtpd/smtpd_peer.c, qmqpd/qmqpd_peer.c
155
IPv6 address ranges using address/prefixlength (e.g. in
156
mynetworks and access maps) should be written as
157
[ipv6:addr:ess]/plen (e.g. [fec0:10:20::]/48). The old
158
supported syntax, [ipv6:addr:ess/plen] is deprecated and
159
support will be removed in a later version.
160
Thanks to Dr. Peter Bieringer and Pekka Savola for discussion.
161
Files: util/match_ops.c, global/mynetworks.c
163
Explicitly prefer IPv6 over IPv4 addresses when delivering
164
to a host when MX lookups are disabled when SMTP address
165
randomization is on (default).
166
File: smtp/smtp_addr.c
168
Compliance: write IPv6 address literals in mail headers
169
as [IPv6:addr] instead of [addr] as per RFC 2821:4.1.3
170
tagging requirement, for example [IPv6:fec0:10:20::1].
171
Pointed out by Dr. Peter Bieringer.
172
Files: smtpd/smtpd{,_peer,_state}.c, smtpd/smtpd.h
174
Version 1.17 Postfix release 2.0.13, 2.0.14
175
Postfix snapshot 2.0.13-20030706, 2.0.14-20030812
177
Bugfix: Two memory allocation/deallocation bugs were
178
introduced in patch 1.16. The impact of these bugs could
179
be 'arbitrary' memory corruption.
180
File: util/match_ops.c
182
Version 1.16 Postfix release 2.0.13
183
Postfix snapshot 2.0.13-20030706
185
Cleanup: rewrote match_ops.c. This rewrite is partly based on
186
patch by Takahiro Igarashi. The rewrite enables some better
187
handling of scoped addresses, and drops all GPL code from the
188
patch, easying license considerations. Also, allowed for
189
use of this code by the CIDR maps.
190
Files: util/match_ops.[ch]
192
Bugfix: correctly relay for scoped unicast addresses when
193
applicable. Until now, while Postfix was able to recognize
194
scoped addresses, it was not able to see e.g. fe80::10%fxp0
195
as local in mynetworks validation. KAME-only code.
196
(I've never heard of people using scoped addresses (think
197
link-local addresses) for mail relaying though...)
198
Files: util/inet_addr_list.[ch]
200
Feature (snapshot only): rewrote CIDR maps code to support
201
IPv6 addresses, using new match_ops code. Allow the use
202
of [::/0] since it allows one to easily disable further
203
checks for IPv6 addresses.
204
File: util/dict_cidr.c
206
Consistency: require IPv6 addresses in inet_interfaces to
207
be enclosed in square brackets.
208
File: util/inet_addr_host.c
210
Bugfix: (Linux2-only) A #define was misspelled. This could
211
lead to Postfix being unable to read the system's local IPv6
212
addresses (e.g. when using inet_interfaces).
213
Spotted by Jochen Friedrich.
214
File: util/sys_defs.h
216
Cleanup: require non-null host portion in CIDR /
217
prefixlength notations for IPv6 (was IPv4-only).
219
Version 1.15a Postfix release 2.0.13
221
Update (TLS patches): Updated Lutz Jaenicke's TLS patch
222
to version 0.8.15. This version introduces new options
223
for managing SASL mechanisms. More information at:
224
http://www.aet.tu-cottbus.de/personen/jaenicke/pfixtls/
225
Diff contributed by Tuomo Soini.
227
Version 1.15 Postfix release 2.0.12, 2.0.13
228
Postfix snapshot 2.0.12-20030621
230
Bugfix (TLS-snapshots only): a change in Postfix snapshot
231
2.0.11-20030609 broke initialisation of TLS in smtpd,
232
causing TLS to both be unadvertised and unaccepted.
233
This was fixed again by reordering initialisation.
236
Update (TLS patches): Updated Lutz Jaenicke's TLS patch
237
to version 0.8.14. This version introduces a few fixes and
238
uses USE_SSL instead of HAS_SSL. More information at:
239
http://www.aet.tu-cottbus.de/personen/jaenicke/pfixtls/
240
Diff contributed by Tuomo Soini.
242
Bugfix (Postfix releases only - this was already added to
243
the snapshots in patch 1.14). KAME derived systems only.
244
Correctly decode scoped addresses, including network
245
interface specifiers.
246
File: util/inet_addr_local.c
248
Version 1.14 Postfix releases 2.0.9, 2.0.10, 2.0.11, 2.0.12
249
Postfix snapshots 2.0.9-20030424, 2.0.10-20030521,
250
2.0.11-20030609, 2.0.12-20030611
252
Patch change: made the patch available as an IPv6-only
253
patch (i.e., without the TLS code). This on popular
254
request by users and packagers.
255
A TLS+IPv6 version is still available of course.
257
Bugfix: correctly decode scoped addresses from now on
258
(KAME derived systems only). I think the original code
259
was written by Itojun, so I'm rather puzzled that it
261
File: util/inet_addr_local.c
263
Bugfix/portability: Recent KAME snapshots return both
264
TCP and SCTP address information on getaddrinfo() if
265
no protocol was specified. This causes the socket counts
266
to be wrong, confusing child processes.
267
Merged patch by JINMEI Tatuya of KAME to fix this.
268
Files: master/master.h, master/master_{ent,conf}.[ch],
271
Documentation: added an IPV6_README file to the patch.
272
This file contains the primary documentation. Also,
273
added a sample-ipv6.cf to describe the (currently few)
274
IPv6 related main.cf parameters.
276
Bugfix: the netmask structures for the *unsupported*
277
platforms (boldly assume /64) were added to the wrong
278
list (addresses instead of masks). This bug did not affect
279
any supported platform though.
280
File: util/inet_addr_local.c
282
Portability: added support for HP/Compaq Tru64Unix V5.1
283
and later. (compiled with CompaqCC only).
284
Thanks to Sten Spans for providing root access to an
285
IPv6-connected Tru64 testing machine.
287
Version 1.13 Postfix releases 2.0.4 - 2.0.9
288
Postfix snapshots 2.0.3-20030126 - 2.0.7-20030319
290
Bugfix: Due to a missing storage pointer, DNS lookup
291
results in the permit_mx_backups code were not processed,
292
and smtpd would likely crash.
293
Thanks to Wouter de Jong for reporting the crashes.
294
File: smtpd/smtpd_check.c
296
Incompatible change: The addresses given to the parameters
297
smtp_bind_address6 and lmtp_bind_address6 now need to be
298
enclosed in square brackets for consistency.
299
Files: [ls]mtp/[ls]mtp_connect.c
301
Version 1.12 Postfix releases 2.0.2, 2.0.3
302
Postfix snapshots 2.0.2-20030115, 2.0.3-20030126
304
Bugfix/workaround (Solaris): A simplified comparison
305
function for Solaris' qsort() function, would result
306
in corruption of network addresses in the SMTP client.
307
Fixed. Reported with possible fix by Edvard Tuinder.
308
File: smtp/smtp_addr.c
310
Version 1.11 Postfix releases 2.0.0.x, 2.0.1, 2.0.2
311
Postfix snapshots 2.0.0-20030105, 2.0.1-20030112
314
Bugfix (Solaris): Properly initialize lifconf structure
315
when requesting host interface addresses. If you get
316
warnings about SIOCGLIFCONF with earlier versions,
318
File: util/inet_addr_local.c
320
Patch fix: fixed compilation errors in case the patch is
321
applied but built without IPv6 support (i.e., on unsupported
324
Version 1.10 Postfix snapshots 1.1.12-200212{19,21}
325
Postfix releases 2.0.0, 2.0.0.{1,2}
326
Postfix snapshots 2.0.0-20021223 - 2.0.0-20030101
328
'Bugfix': don't show spurious warnings on Linux systems
329
about missing /proc/net/if_inet6 unless verbose mode
331
File: util/inet_addr_local.c
333
Bugfix: If unable to create a socket for a specific adress
334
in the SMTP client (e.g., when trying to create an IPv6
335
connection while the local host has no configured IPv6
336
addresses), then stop the attempt.
337
File: smtp/smtp_connect.c
339
Small bugfix: never query DNS for <localpart@[domain.tld]>.
340
This syntax now correctly generates an error immediately.
341
File: global/resolve_local.c
343
Updated TLS patch to 0.8.12-1.1.12-20021219-0.9.6h, fixing
344
a bug with "sendmail -bs".
346
Version 1.9 Postfix version 1.1.11-20021115
347
Postfix version 1.1.12-2002{1124,1209-1213}
349
Bugfix: with getifaddrs() code (*BSD, linux-USAGI), IPv4
350
netmasks were set to /32 effectively. Work around broken
351
netmask data structures (*BSD only perhaps).
353
Bugfix: same data corruption in another place created
354
entirely wrong IPv4 netmasks. Work around broken
355
SIOCGIFNETMASK structure.
357
New code was added for correct IPv6 netmasks. The original
358
code did not contain IPv6 netmask support at all!
359
For Solaris, use SIOCGLIF*; Linux: /proc/net/if_inet6.
360
Getifaddrs() support is used otherwise. This should cover
361
all supported systems. Other systems also work, prefix
362
length is always set to /64 then.
364
Since there are no classes (context: Class A, class B etc
365
networks) with IPv6, default to IPv6 subnet style if the
366
mynetworks style is 'class'. I recommend against this style
369
Added support to display IPv6 nets mynetworks output.
371
Version 1.8 Postfix version 1.1.11-200211{01,15}
373
An earlier author of the patch made a typo in the GAI_STRERROR()
374
macro, resulting in bogus error messages when checking for
377
IPv4-mapped addresses in the smtpd are converted to true IPv4
378
addresses just after the connection has been made. This means
379
that all IPv4-mapped addresses are now logged as true IPv4
380
addresses. Hence beside RBL checks, also access maps now treat
381
IPv4-mapped addresses as native IPv4. Note that ::ffff:...
382
entries in your access tables will no longer work.
384
You can now specify IPv6 'parent' networks in your access maps,
385
e.g. to reject all mail from 3ffe:200:... nodes, add the line
387
Use of trailing colons is discouraged because postmap will
388
warn about it possibly being an alias...
389
NOTE: I'll soon obsolete this again in favor of the more
390
common address/len notation. This was just so trivial to add
391
that it didn't hurt and I needed it :)
393
For easy reference, the version of the TLS/IPv6 patch can be
394
dynamically queried using the tls_ipv6_version variable.
395
This gives the short version (like, "1.8").
397
The service bind address for 'inet' sockets in master.cf (e.g.,
398
smtpd), must be enclosed in square brackets '[..]' for IPv6
399
addresses. The old style (without brackets) still works but is
400
unsupported and may be removed in the future. Example
401
[::1]:smtp inet n - n - - smtpd
403
Version 1.7 Postfix version 1.1.11-20021029 - 1.1.11-20021101
405
Postfix' SMTP client performs randomization of MX addresses
406
when sending mail. This however could result in A records
407
being used before AAAA records. This has been corrected.
409
Note that from Postfix version 1.1.11-20021029 on, there is
410
a proxy_interfaces parameter. This has of course not been
411
ported to IPv6 addresses...
413
Version 1.6 Postfix version 1.1.11-20020928
415
Added IPv6 support for backup_mx_networks feature; also the
416
behaviour when DNS lookups fail when checking whether the
417
local host is an MX for a domain conforms to the IPv4 case:
418
defer rather than allow.
420
Version 1.5 Postfix version 1.1.11-20020917
422
I introduced two bugs when I rewrote my older LMTP IPv6 patch.
423
These bugs effectively rendered LMTP useless. Now fixed.
424
Bugs spotted by Kaj Niemi.
426
Now supports Solaris 8 and 9. Due to lack of testing equipment,
427
this has been only tested in production on Solaris 9, both
428
with gcc and the Sun Workshop Compiler.
430
Version 1.4 Postfix version 1.1.11-20020822 - 1.1.11-20020917
432
OpenBSD (>=200003) and FreeBSD release 4 and up now use
433
getifaddrs(). This makes for cleaner code. The old code
434
seems to be bug-ridden anyway.
436
Got rid of some compiler warnings. Should be cleaner on
437
Alpha as well now. Thanks to Sten Spans for providing me
438
access to an Alpha running FreeBSD4.
440
Fixed an old bug in smtpd memory alloation if you compiled
441
without IPv6 support (the wrong buffer size was used. This
442
was harmless for IPv6-enabled compiles since the sizes were
445
Added ChangeLog to the patch (as IPv6-ChangeLog) (this
446
was absent in 1.3 contrary to docs).
448
Version 1.3 Postfix version 1.1.11-20020613 - 1.1.11-20020718
450
FYI: In postfix version 1.1.11-20020718, DNS lookups for
451
AAAA can be done natively. The code matches the code in
452
the patch (though the #ifdef changed from INET6 to T_AAAA).
453
This change causes the patch for 1.1.11-20020718 to be a
456
Version 1.2 Postfix version 1.1.11-20020613
458
Added IPv6 support for the LMTP client.
460
Added lmtp_bind_address and lmtp_bind_address6 parameters,
461
similar to those for smtp.
463
Added IPv6 support for the QMQP server.
465
Version 1.1 Postfix version 1.1.11-20020602 - 1.1.11-20020613
467
Added parameter smtp_bind_address6. By using this parameter,
468
it is possible to bind to an IPv6 address, independently of
469
IPv4 address binding.
471
Lutz fixed a bug in his TLS patch regarding SASL. Incorporated.
473
Version 1.0.x Postfix version 1.1.8-20020505 - 1.1.11-20020602
475
Patch derived from PLD's IPv6 patch for Postfix, revision 1.10
476
which applied to early Postfix snapshots 1.1.x. Updated this
477
patch to apply to 1.1.8-20020505.
479
Added compile-time checks for SS_LEN. Some Linux installations,
480
and maybe other systems, do define SA_LEN, but not SS_LEN.
482
Several updates of postfix snapshots.