debian/rules: Use `git' potty wrapper.
[qmail] / CHANGES
1 19980615 version: qmail 1.03.
2 19980614 doc: eliminated BIN.setup in favor of a web page.
3 19980614 code: added other auto* to qmail-showctl output.
4 19980614 doc: added pointer to immhf.html in qmail-header.5.
5 19980614 doc: added note to TEST.receive about SMTP command format.
6 19980614 doc: added FAQ 5.6 on qmail-qmqpd.
7 19980614 code: removed unused variables in idedit.c.
8 19980613 code: changed conf-patrn to 002.
9 19980613 doc: moved SENDMAIL lower in INSTALL.
10 19980612 code: added install-big.
11 19980612 code: added BIN.Makefile.
12 19980612 doc: added BIN.README, BIN.setup.
13 19980612 code: switched to new install.
14 19980611 code: added idedit.
15 19980611 doc: added FAQ 1.3 on $QMAILMFTFILE.
16 19980611 doc: used bouncesaying in FAQ 5.5.
17 19980611 code: added except.
18 19980611 code: added bouncesaying.
19 19980611 code: allowed unbracketed IP addresses in dns_ipplus() and
20 dns_mxip().
21 19980611 code: allowed spaces after colon in non-bracketed addresses in
22 qmail-smtpd.
23 19980611 doc: cleaned up UPGRADE.
24 19980528 bug: qmail-smtpd skips first character in rcpthosts() call.
25 tnx NND. impact: qmail-smtpd crashes on empty address; and it
26 allows relaying to ""@any.host. fix: use addr.s.
27 19980515 doc: expanded flock discussion in INSTALL.mbox.
28 19980515 doc: eliminated flock warning from INSTALL.maildir.
29 19980515 doc: split REMOVE.binmail out of INSTALL.
30 19980515 doc: split REMOVE.sendmail out of INSTALL.
31 19980515 doc: split TEST.deliver and TEST.receive out of INSTALL and
32 UPGRADE.
33 19980515 doc: integrated INSTALL.boot into INSTALL.
34 19980515 code: cleaned up final output in qmail-qmqpd.c.
35 19980514 doc: updated procmail notes in INSTALL.mbox. tnx JRM.
36 19980514 doc: changed FAQ 4.4 to point to INSTALL.mbox for procmail.
37 tnx JRM.
38 19980514 code: separated HELO and EHLO; single-line response for HELO.
39 tnx to various people.
40 19980430 version: qmail 1.02.
41 19980430 doc: updated SECURITY.
42 19980430 doc: fixed FAQ 4.9. tnx KB.
43 19980430 code: changed quote2() to avoid quoting <>.
44 19980429 code: changed quote_need() to quote empty local parts. tnx HHO.
45 19980428 doc: added status notes to INSTALL and UPGRADE.
46 19980428 code: skip setting environment in sendmail.c if PROTO is set.
47 19980428 code: eliminated recipientmap.
48 19980428 code: added virtual users to qmail-send.c. tnx RN.
49 19980428 code: eliminated domain from rewrite() in qmail-send.c.
50 19980428 code: added binm1, binm1+df, binm2, binm2+df, binm3, binm3+df.
51 19980428 doc: eliminated most Mailbox references from INSTALL, UPGRADE.
52 19980428 code: added config-fast.
53 19980428 code: renamed qmail-config as config.
54 19980428 code: supported QMAILMFTFILE in qmail-inject.c.
55 19980428 code: recognized Mail-Followup-To in hfield.c.
56 19980428 code: replaced rwrecip() with rwappend() in qmail-inject.c.
57 19980428 code: cleaned up doheaderfile() in qmail-inject.c.
58 19980426 code: eliminated -type test from qmail-qstat to speed it up.
59 tnx FT.
60 19980421 doc: eliminated remove-rcpthosts comments from FAQ.
61 19980421 doc: updated FAQ 4.3 to point to Russ Allbery's FAQ.
62 19980421 doc: took account of /var/qmail/boot in INSTALL, UPGRADE, and
63 INSTALL.vsm.
64 19980421 code: added /var/qmail/boot, with home, home+df, proc, proc+df.
65 19980421 doc: skipped make and make man in INSTALL.
66 19980420 doc: cleaned up mbox description in SENDMAIL.
67 19980420 code: changed QMQP port to official port 628.
68 19980402 doc: updated qmsmac references to fastforward.
69 19980402 doc: replaced qmail-upgrade man page with doc/SENDMAIL.
70 19980402 code: added qmqpservers output to qmail-showctl.
71 19980402 code: added qmail-qmqpd.
72 19980402 code: added qmail-qmqpc.
73 19980304 code: eliminated del_saywhynoexit in qmail-send.c.
74 19980304 code: eliminated concurrencynodel in qmail-send.c.
75 19980222 code: added status() to qmail-send.c.
76 19980222 code: added concurrencyused to qmail-send.c.
77 19980128 doc: added note to qmail-getpw.9 about ETXTBSY.
78 19980127 code: eliminated err_seenmail() in qmail-smtpd.c. tnx PO.
79 19980126 doc: used $DEFAULT in FAQ where possible.
80 19980126 code: added DEFAULT in qmail-local.
81 19980126 code: added -/ to qmail-pw2u.
82 19980126 code: revamped qmeopen() as qmesearch() with more sensible
83 semantics, separating dash from ext cleanly.
84 19980126 code: split qmeexists() out of qmeopen() in qmail-local.c.
85 19980126 code: introduced safeext in qmail-local.c.
86 19980126 code: changed ~alias to mode 2755, to put files into group
87 qmail rather than group nofiles under System V.
88 19980126 doc: switched to /var/qmail/rc in INSTALL*, UPGRADE, FAQ.
89 19980126 code: added rc.
90 19980119 doc: added .qmail creation warning to condredirect.1.
91 19980118 code: made auto_uids.c creation atomic in Makefile. tnx HHO.
92 19980118 doc: added PIC.*.
93 19980117 portability problem: Solaris 2.5.1 incorrectly converts
94 O_NDELAY into O_NONBLOCK for sockets, so that ndelay_off()
95 fails to undo ndelay_on(). impact: none, since all the network
96 readers here use select() via timeoutread(). fix: use
97 O_NONBLOCK if it is defined.
98 19980115 code: reformatted qmail-qmtpd.c.
99 19980115 doc: changed tcpcontrol references in FAQ.
100 19980115 doc: documented morercpthosts in qmail-qmtpd.9.
101 19980115 code: eliminated unused datetime in qmail-qmtpd.c.
102 19980115 code: eliminated sigalrm() in qmail-qmtpd.c.
103 19980115 code: used rcpthosts() in qmail-smtpd.c, qmail-qmtpd.c.
104 19980115 code: introduced rcpthosts.c.
105 19980115 code: added morercpthosts.cdb support to qmail-showctl.
106 19980115 code: added morercpthosts support to qmail-showctl.
107 19980115 code: do_lst now returns file-exists in qmail-showctl.
108 19980112 doc: documented morercpthosts in qmail-smtpd.9.
109 19980112 code: added qmail-newmrh.
110 19980112 code: used commands.c in qmail-popup.
111 19980112 code: used commands.c in qmail-pop3d.
112 19980112 code: introduced fakehelo in qmail-smtpd.
113 19980112 code: moved flagbarf setting out of bmfcheck().
114 19980112 code: allowed more address misformatting in qmail-smtpd.
115 19980112 code: eliminated qmail@pobox.com help address in qmail-smtpd.
116 19980112 code: reorganized qmail-smtpd.
117 19980112 code: reformatted qmail-smtpd.
118 19980112 code: used commands.c in qmail-smtpd.
119 19980112 code: switched from 0 to "" for no arg in commands().
120 19980112 code: added commands.c.
121 19971230 doc: added -s to FreeBSD commands in INSTALL.ids. tnx TM.
122 19971224 doc: added pointer to qmail pictures in README.
123 19971223 doc: added note in FAQ about qmail-pop3d using maildir.
124 19971219 code: added HOST2, HOST3, HOST4.
125 19971219 code: renamed extx as x in qmail-local.c.
126 19971219 doc: partitioned qmail-command.0.
127 19971219 doc: updated FAQ 4.3 to point to newer majordomo patches.
128 19971219 doc: eliminated qlist2 from FAQ.
129 19971219 doc: eliminated qlist discussion from SECURITY.
130 19971219 code: moved qlist, qlist2 to separate package.
131 19971213 doc: added FAQ 4.10 on qmail-users generally.
132 19971213 doc: added FAQ 4.9 on dealing with NFS outages.
133 19971031 doc: added Linux and FreeBSD commands to INSTALL.ids. tnx TM.
134 19971026 doc: added note about smtplf in qmail-smtpd.8. tnx S2S.
135 19971014 doc: some tweaks to THOUGHTS.
136 19971012 doc: used MAILER-DAEMON in UUCP example in INSTALL.
137 19971003 code: eliminated dataline and getln() from qmail-remote.c.
138 19971003 code: revamped blast() in qmail-remote.c.
139 19971002 doc: added FAQ entries for .forward and /etc/aliases.
140 19971002 doc: rewrote INSTALL.mbox and INSTALL.vsm.
141 19971002 doc: renamed INSTALL.qsmhook as INSTALL.vsm.
142 19971002 doc: emphasized the qmail-popup argv0 in FAQ.
143 19971001 doc: added dot-forward note to BLURB3.
144 19971001 doc: added more configuration notes to qmail-upgrade.9.
145 19971001 doc: added note in INSTALL.qsmhook about dot-forward.
146 19970930 code: token822_parse() now supports backslash as a quoting
147 character in atoms.
148 19970929 doc: suggested symbolic links in INSTALL.mbox.
149 19970925 doc: added note to INTERNALS about bounce stability.
150 19970925 doc: added section to THOUGHTS discussing CNAME lookups.
151 19970925 code: qmail-remote no longer does CNAME lookup on sender. tnx
152 C2F.
153 19970923 portability problem: under SCO OSR5, splogger needs socket
154 libraries. impact: couldn't compile. fix: socket.lib. tnx RB.
155 19970906 portability problem: under RISC/OS, Mail invokes sendmail -bm.
156 impact: can't send mail using Mail on RISC/OS. fix: ignore -bm.
157 tnx NW.
158 19970813 code: implemented databytes in qmail-qmtpd.
159 19970813 code: implemented databytes. tnx M4S for sample code.
160 19970813 code: replaced execvp() with execv() for sh in qmail-local.
161 19970813 doc: said in qmail-control.9 that recipientmap allows comments.
162 19970813 code: used strerr in qmail-local.c.
163 19970813 code: changed timeoutread(), timeoutwrite() interface.
164 19970813 code: eliminated shutdown() in timeoutread(), timeoutwrite().
165 19970813 code: revamped I/O in qmail-smtpd.c.
166 19970813 code: used timeoutread(), timeoutwrite() in qmail-smtpd.c.
167 19970813 code: simplified getcontrol() logic in qmail-remote.c; some
168 out-of-memory messages are now cannot-read-control messages.
169 19970813 code: eliminated scan_nbblong().
170 19970813 code: reformatted qmail-remote.c.
171 19970813 code: renamed flaganyrecipok as flagbother in qmail-remote.c.
172 19970813 code: integrated status report into quit() in qmail-remote.c.
173 19970813 code: revamped smtpcode() in qmail-remote.c.
174 19970813 code: added flagcritical in qmail-remote.c. eliminates
175 possible-duplicate warning if dot has not yet been sent.
176 19970813 code: revamped I/O in qmail-remote.c.
177 19970813 code: quit immediately after sending QUIT in qmail-remote.c.
178 19970813 code: made many more globals in qmail-remote.c.
179 19970813 code: switched qmail-remote.c from subfdin to home-grown.
180 19970813 code: switched qmail-remote.c from subfdout to subfdoutsmall.
181 19970813 code: added LAST support to qmail-pop3d.
182 19970812 code: changed qmail_close() success return from 0 to "".
183 19970812 code: revamped I/O in qmail-qmtpd.c.
184 19970812 code: added qmail-tcpok.
185 19970812 code: used strerr in maildirmake.c.
186 19970812 code: reformatted maildirmake.c.
187 19970812 code: printed qp in condredirect.c.
188 19970812 code: printed qqx in condredirect.c.
189 19970812 code: revamped I/O in condredirect.c.
190 19970812 code: reformatted condredirect.c.
191 19970812 code: used strerr in preline.c.
192 19970812 code: revamped I/O in preline.c.
193 19970812 code: reformatted preline.c.
194 19970812 code: printed qp in forward.c.
195 19970812 code: printed qqx in forward.c.
196 19970812 code: revamped I/O in forward.c.
197 19970812 code: used strerr in forward.c.
198 19970812 code: reformatted forward.c.
199 19970812 code: used strerr in predate.c.
200 19970812 code: forced failure in qmail-qmtpd if no recipients; saves
201 time for qmail-send.
202 19970812 code: added smtpd() to sendmail.c.
203 19970812 code: added mailq() to sendmail.c.
204 19970812 code: added die_usage() to sendmail.c.
205 19970812 code: reformatted sendmail.c.
206 19970812 code: used byte_zero() in qmail-popup.c.
207 19970812 code: reformatted qmail-popup.c.
208 19970812 code: eliminated unused header files in qmail-popup.c.
209 19970812 code: changed I/O system in qmail-popup.c to match qmail-pop3d.
210 19970812 doc: pointed people to the mailing list in INSTALL and UPGRADE.
211 19970810 code: added TXTBSY check to qmail-getpw.c. this gives vendors
212 the opportunity to make getpwnam() reliable.
213 19970810 code: moved non-deleted messages from new/ to cur/ in
214 qmail-pop3d. tnx to various people.
215 19970810 code: introduced list() in qmail-pop3d.c.
216 19970810 code: reformatted qmail-pop3d.c.
217 19970810 code: merged dataline and newname into line in qmail-pop3d.c.
218 19970810 code: chopped filenames in qmail-pop3d at colons for UIDL. tnx
219 to various people.
220 19970810 code: eliminated printint(), printlong() in qmail-pop3d.c.
221 19970810 code: revamped I/O in qmail-pop3d.c.
222 19970810 code: used timeoutread(), timeoutwrite() in qmail-pop3d.c.
223 19970810 code: eliminated die_prot() in qmail-pop3d.c.
224 19970810 code: eliminated unused header files in qmail-pop3d.c.
225 19970810 code: switched qmail-pop3d to use maildir.c. tnx MD.
226 19970809 code: added uid/gid printing to qmail-showctl. tnx PGF.
227 19970808 code: switched control.c from scan_nbblong to scan_ulong.
228 19970808 code: cleaned up wait_pid to use waitpid() when possible, and
229 to support at least one extra child otherwise.
230 19970807 code: in qmail-smtpd, treat long envelope addresses as a syntax
231 error, instead of waiting for qmail-queue to reject them.
232 19970803 code: changed condredirect, forward, qlist, qmail-inject,
233 qmail-local, qmail-qmtpd, qmail-send, qmail-smtpd, qreceipt for
234 new qmail_close() interface.
235 19970803 code: revised qmail_close() to handle qmail-queue exit codes.
236 19970802 doc: documented SMTP-related exit codes in qmail-queue.8.
237 19970802 doc: documented qmail-queue exit codes in qmail-queue.8.
238 19970802 code: revamped qmail-queue exit codes.
239 19970802 doc: noted linking restrictions in qmail-queue.8.
240 19970802 doc: rewrote INSTALL.mbox.
241 19970802 doc: split INSTALL.maildir off of INSTALL.mbox.
242 19970802 code: added /var/qmail/doc/ creation to qmail-hier.
243 19970802 doc: added ezmlm note to FAQ.
244 19970802 doc: replaced qlist blurbs with ezmlm blurbs in BLURB*.
245 19970802 doc: added various notes to qmail-start.9.
246 19970728 doc: eliminated RFC*.
247 19970714 doc: added daemontools notes to FAQ.
248 19970714 code: eliminated ESMTP parameter syntax checking.
249 19970701 doc: changed ``forwarded'' to ``resent'' in qmail-header.5.
250 19970629 code: reformatted constmap.c.
251 19970628 code: changed straynewline() message in qmail-smtpd.c to point
252 to http://pobox.com/~djb/smtplf.html. tnx RDM.
253 19970609 doc: added preline to vacation example in dot-qmail.9. tnx C2S.
254 19970421 code: cleaned up slurpclose to handle interrupts.
255 19970421 code: set qmail-popup to mode 711. tnx MD.
256 19970421 doc: fixed qmail-local -n example in dot-qmail.9.
257 19970415 version: qmail 1.01.
258 19970414 doc: tightened up qmail-upgrade.7.
259 19970414 code: rewrote rewrite().
260 19970414 code: implemented recipientmap. suggested by RDM.
261 19970414 doc: auto-configured qmail home directory in qmail-control.5,
262 qmail-newu.8, qmail-pw2u.8, qmail-start.8, qmail-users.5.
263 19970414 port: Solaris needs socket libs for gethostname. impact: can't
264 compile under Solaris. fix: use socket.lib for qmail-local.
265 19970412 code: introduced stralloc_starts.
266 19970412 code: introduced str_equal.
267 19970412 code: introduced str_start.
268 19970412 code: introduced byte_equal.
269 19970412 code: made an optional aliasempty arg for qmail-start.
270 19970412 code: made an aliasempty arg for qmail-lspawn.
271 19970412 code: changed ALIAS_EMPTY to an arg for qmail-local.
272 19970412 port: UnixWare returns >0 for SIOCGIFCONF. impact: ipme fails
273 under UnixWare. fix: check for >=0, not =0. tnx JD.
274 19970412 port: DGUX does not have ranlib. impact: can't compile under
275 DGUX. fix: added dgux line to make-makelib. tnx HWM.
276 19970412 code: changed maildir library to skip any filename beginning
277 with dot. tnx SP.
278 19970412 doc: added FAQ entry about aliases with dots.
279 19970412 doc: clarified in qmail-inject.8 that default envelope sender
280 is the same as _default_ From address.
281 19970411 code: renamed qmail-makectl as qmail-config.
282 19970411 code: renamed qmail-alias as qmail-local.
283 19970411 code: switched from signal library to sig library.
284 19970411 code: switched from qqtalk library to qmail library.
285 19970411 code: switched from getline library to getln library.
286 19970411 code: massive library cleanups.
287 19970411 code: revamped autoconfiguration system.
288 19970411 code: revamped configuration interface.
289 19970411 code: eliminated qmail-home.
290 19970411 code: eliminated tokenize.
291 19970220 qmail 1.00.
292 19970219 change: various documentation tweaks.
293 19970218 change: updated THOUGHTS.
294 19970218 change: talked about SPAWN_NUMD in FAQ. tnx EC.
295 19970210 change: noted in maildir.5 that readers should skip any name
296 starting with a dot. tnx SP.
297 19970209 change: added note to splogger.8 about reliability. tnx BT.
298 19970209 change: added section to FAQ on slow sendmail switch. tnx BT.
299 19970206 change: added section to FAQ about dtcm. tnx PJG.
300 19970206 change: tweaked maildir.5.
301 19970201 change: added MH spost note to FAQ. tnx TU.
302 19970131 change: reorganized FAQ.
303 19970131 change: added web references to FAQ.
304 19970124 change: tweaked qmail-upgrade man page.
305 19970120 qmail 0.96, gamma.
306 19970120 change: removed various try* in auto-configuration.
307 19970120 bug: qmail-inject fails to quote argument addresses. impact:
308 addresses containing special characters could be misinterpreted
309 or rejected. tnx C2F. fix: use quote2().
310 19970120 portability problem: ESIX puts syslog() and openlog() into
311 -lgen. impact: can't compile under ESIX. fix: put -lgen into
312 LIBS for unix_sv. tnx RN.
313 19961221 qmail 0.95, gamma.
314 19961218 change: added various try* to TARGETS. tnx SA.
315 19961216 change: clarified in qmail-send.8 that virtualdomains does not
316 apply to domains listed in locals.
317 19961216 change: slurpclose() now closes fd on out-of-memory. makes it
318 more widely applicable.
319 19961215 change: replaced elm instructions in INSTALL.mbox with an
320 explanation of what source change to make. tnx AB.
321 19961212 portability problem: under NEWS-OS, time_t needs sys/types.h.
322 impact: couldn't compile under NEWS-OS. fix: include
323 sys/types.h in predate.c. tnx TU.
324 19961211 change: used timeoutread, timeoutwrite in remoteinfo(). tnx
325 REB.
326 19961210 portability problem: apparently some SGIs produce a systype of
327 irix64. impact: couldn't compile on those systems. fix: handle
328 irix64 in make-cmds. tnx M3S.
329 19961208 change: added note to maildir2mbox.1 about mbox locking.
330 19961208 qmail 0.94, gamma.
331 19961207 change: added QMAILDEFAULTDOMAIN, QMAILDEFAULTHOST,
332 QMAILIDHOST, QMAILPLUSDOMAIN. tnx BTW.
333 19961206 cleanup: readsubdir() protects itself against name overflow,
334 rather than depending on caller.
335 19961204 change: changed FAQ 7.3 to prohibit fixup relaying.
336 19961203 change: added note to FAQ about possibly having to put a space
337 before "$SENDER" for uux. tnx FW.
338 19961202 change: added FAQ entry on QUEUE_EXTRA.
339 19961202 change: added FAQ entry on backups. tnx DP.
340 19961202 change: added note to INSTALL.mbox about qpopper. tnx VV.
341 19961201 change: replaced logger with splogger in FAQ 5.1. tnx FPL.
342 19961201 change: used netmask example for tcpcontrol in FAQ. tnx FPL.
343 19961201 change: added note to README about the mailing list. tnx FPL.
344 19961201 change: documented rcpthosts wildcards. tnx RN.
345 19961201 change: added note to FAQ about making mailx use datemail.
346 19961201 change: added datemail. function requested by several people;
347 approach suggested by TG.
348 19961201 change: added predate.
349 19961129 change: added QUEUE_EXTRA, QUEUE_EXTRALEN.
350 19961129 change: qmail-remote bounces messages with partial final lines.
351 19961129 change: added atomcheck() to quote crappy atoms.
352 19961129 change: revised atomok() to let atoms deal with more crap.
353 19961127 change: qmail-send adds note to deferral if flagdying. tnx TG.
354 19961127 change: split off maildirbounce, maildir2qmtp, and maildir2smtp
355 into a separate serialmail package.
356 19961126 change: eliminated beta success reports from README.
357 19961124 change: forced res_query() return value to fit inside incoming
358 buffer size. allegedly there are buggy versions of res_query()
359 that don't guarantee this.
360 19961122 qmail 0.93, gamma.
361 19961122 change: allowed empty arg list in forward.
362 19961121 change: qmail-smtpd now uses unknown (like qmail-qmtpd) rather
363 than dying if environment variables are not set.
364 19961121 cleanup: reorganized helo handling in qmail-smtpd.c.
365 19961121 cleanup: eliminated newfield_rec.
366 19961121 cleanup: introduced DATE822FMT. used it in received.c.
367 19961121 cleanup: introduced received.c. used it in qmail-qmtpd.c,
368 qmail-smtpd.c.
369 19961121 change: qmail-smtpd now generates a new timestamp for each
370 message. tnx PJG.
371 19961121 cleanup: used stralloc in newfield.
372 19961121 cleanup: eliminated newfield_cc.
373 19961121 change: eliminated hfield_mort().
374 19961119 change: added 2-minute damper on tcpto.
375 19961118 change: wrote defaults for readfile controls in showctl.
376 19961117 change: control_readfile() now allows comments and blank lines.
377 tnx LW.
378 19961117 change: qmail-start sets logger gid to GID_NOFILES.
379 19961117 bug: ipme_init() uses a fixed-length buffer for SIOCGIFCONF.
380 impact: qmail-smtpd and qmail-remote will die if there are too
381 many local IP addresses. tnx MD. fix: ipme_init() now
382 dynamically allocates space, up to 200000 bytes, as long as
383 SIOCGIFCONF keeps failing. note that this is a very widespread
384 bug; it's in amd, exim, mrouted, named, nntpd, rarpd, sendmail,
385 tcpdump, timed, xntpd, and probably dozens more programs.
386 19961117 portability problem: on BSD 4.4 and various other systems,
387 SIOCGIFCONF will truncate long lists and return success.
388 impact: on those systems, qmail-smtpd and qmail-remote will
389 miss some local IP addresses if there are too many. fix:
390 ipme_init() now checks whether there is enough space left in
391 the buffer for another ifreq, plus 64 bytes JIC. yuck.
392 19961117 change: ipmeprint now flushes only at end.
393 19961117 cleanup: introduced subfdinsmall. used it in qmail-clean.c,
394 qmail-qmtpd.c.
395 19961117 cleanup: introduced subfdoutsmall. used it in hostname.c,
396 printbreak.c, printnumd.c, printsplit.c, qmail-alias.c,
397 qmail-clean.c, qmail-getpw.c, qmail-qmtpd.c, maildir2smtp.c,
398 maildir2qmtp.c.
399 19961117 change: moved subfderr buf up to 256 characters.
400 19961117 change: added maildirbounce. tnx MD, TG.
401 19961116 change: maildir2smtp and maildir2qmtp now print filenames for
402 permanent bounces. tnx MD.
403 19961116 change: in SECURITY, ``eleven most recent sendmail security
404 holes, five'' -> ``twelve most recent sendmail security holes,
405 six.''
406 19961116 change: rewrote qmail-showctl more professionally.
407 19961115 change: added several tests to find-systype.sh. this will
408 affect many systypes.
409 19961115 change: qmail-alias now treats most exit codes as soft errors.
410 19961115 change: revamped exit codes everywhere for 0, 100, 111.
411 19961114 change: added splogger.
412 19961114 portability problem: Sun's cc recognizes sqrt() as a builtin,
413 even if math.h is not included and sqrt is defined statically.
414 yuck. impact: when qmail is compiled with Sun's cc, next-retry
415 times are all screwed up. tnx PJG. fix: my sqrt() is now called
416 squareroot().
417 19961114 change: dns_ip() now recognizes [1.2.3.4]. tnx DS.
418 19961112 change: enabled x option in sendmail. tnx DS.
419 19961111 change: added SIGHUP handling to qmail-send. suggested by many
420 people.
421 19961111 bug: control routines returned incorrect codes for some
422 out-of-memory conditions. impact: none; conditions cannot
423 happen with sane control files. fix: return -1.
424 19961111 change: added SIGALRM handling to qmail-send. suggested by many
425 people.
426 19961111 change: eliminated flagnobreak (-b/-B) from qmail-pw2u.
427 19961111 change: qmail-getpw now allows hyphens inside usernames.
428 19961111 change: added users/append to qmail-pw2u. tnx G2A.
429 19961111 change: added badmailfrom to qmail-smtpd. requested by several
430 people.
431 19961110 change: replaced elm instructions in INSTALL.mbox with a simple
432 note to set incomingfolders in elm.rc. tnx AB.
433 19961110 change: replaced ``owner hack'' with ``variable envelope
434 return paths'' throughout the documentation. tnx DS.
435 19961110 change: qmail-setup installs man pages as well as cat pages.
436 19961110 change: renamed qmail-newuser as qmail-newu. tnx G2A.
437 19961110 change: renamed qmail-pw2user as qmail-pw2u. tnx G2A.
438 19961105 change: set path in INSTALL.boot. tnx TJH.
439 19961105 change: noted in qmail-smtpd.8 that addresses without @ are
440 always allowed through.
441 19961105 change: indicated at various spots in FAQ that rcpthosts has to
442 be updated. suggested by various people.
443 19961105 change: indicated at various spots in FAQ that qmail has to be
444 restarted. suggested by various people.
445 19961029 change: fixed typo in maildir2qmtp.1. tnx BG.
446 19961026 qmail 0.92, gamma.
447 19961026 bug: qmail-getpw did not 0-terminate usernames. tnx CF. impact:
448 qmail-getpw would crash on some systems, deferring local
449 deliveries. fix: 0-terminate.
450 19961025 cleanup: renamed auto-hassgprm.h to hassgprm.h.
451 19961025 cleanup: renamed auto-hassgact.h to hassgact.h.
452 19961024 change: replaced qmail-alias.0 with dot-qmail.0 in
453 INSTALL.alias. tnx MW.
454 19961022 change: switched uids as early as possible in qmail-start.c.
455 19961022 change: in SECURITY, ``ten most recent sendmail security
456 holes, five'' -> ``eleven most recent sendmail security holes,
457 five.''
458 19961022 change: quote_need() now treats non-ASCII characters the same
459 way as control characters.
460 19961022 change: added version and home page to qmail.7.
461 19961022 cleanup: introduced slurpclose.c. used it in qmail-alias.c,
462 qmail-lspawn.c.
463 19961021 portability problem: AT&T NCR boxes need stdio.h before
464 arpa/nameser.h. impact: dns.c would not compile. fix: include
465 stdio.h. tnx HS.
466 19961021 change: added AIX section to INSTALL.ids. tnx SSB.
467 19961021 change: added qmail-pw2user.
468 19961020 change: added qmail-pw2user.8.
469 19961020 change: qmail-alias now dies soft on EACCES/EPERM for .qmail.
470 19961020 change: eliminated root comments from INSTALL.qsmhook.
471 19961020 change: various improvements in FAQ.
472 19961017 change: added QLX_ROOT.
473 19961017 change: renamed hosts in FAQ. tnx SLB.
474 19961017 change: in dot-qmail.5, documented envnoathost effects. tnx RN.
475 19961017 change: revamped addresses.5.
476 19961017 change: added stripvdomprepend() for better bounces. tnx PT.
477 19961012 portability problem: under HP-UX 9, can't setgroups() to 65537.
478 impact: couldn't compile under HP-UX 9. fix: use 0 instead of
479 65537 in chkshsgr.c. tnx HHO.
480 19961008 change: added several qlx codes.
481 19961008 cleanup: eliminated qlx from qmail-alias.
482 19961008 change: qmail-lspawn runs qmail-getpw as UID_PW.
483 19961008 change: added qmail-newuser.
484 19961008 change: added cdb support to qmail-lspawn.
485 19961008 change: integrated cdb.
486 19961007 change: added qmail-users.5.
487 19961007 change: eliminated usermap.
488 19961007 cleanup: switched execvp to execv in sendmail, qmail-lspawn.
489 19961007 change: used qmail-getpw in qmail-lspawn.
490 19961007 change: renamed LSPAWN_USERLEN as GETPW_USERLEN.
491 19961007 change: added qmail-getpw.
492 19961007 change: created users subdirectory of CONF_HOME.
493 19961007 change: fixed typo in FAQ. tnx J1B.
494 19961006 change: replaced subfdout with a small ss in qmail-alias.
495 19961006 change: reduced qmail-alias buffer sizes to 1024.
496 19961003 change: added note to maildir2smtp.0 about maildirmake. tnx SM.
497 19961003 bug: if ipme_init() returned -1, qmail-remote would continue,
498 blindly assuming that all addresses are local. impact: on
499 systems with too many aliases, all remote deliveries fail. tnx
500 MD. fix: qmail-remote now dies with temp_oserr() on any result
501 other than 1.
502 19961003 portability problem: all pre-4.9.4 versions of bind barf,
503 badly, on CNAME queries to lame servers. what a crappy system.
504 even if the resolver doesn't barf, the next name server down
505 the line may barf. impact: qmail can't get mail through to
506 domains that are (1) lame and (2) running old versions of bind.
507 fix: never, ever, do a CNAME query. dns_cname() now does an ANY
508 query instead. this, like sendmail's analogous procedure, is
509 unreliable when a CNAME is mixed with other records.
510 19961001 cleanup: switched to libfd in qmail-start.c.
511 19960929 cleanup: renamed auto-hasmkffo.h to hasmkffo.h.
512 19960928 cleanup: reorganized qmail-start.c.
513 19960928 cleanup: used libfd in preline.c, qmail-lspawn.c,
514 qmail-popup.c, qmail-rspawn.c, qmail-start.c, qqtalk.c,
515 qsmhook.c.
516 19960928 cleanup: added libfd.
517 19960927 change: in SECURITY, ``nine most recent sendmail security
518 holes, four'' -> ``ten most recent sendmail security holes,
519 five.''
520 19960926 change: added tcpcontrol notes to FAQ.
521 19960926 change: qmail-smtpd now immediately closes connection, with a
522 warning message dedicated to Solaris, if stray newlines show up
523 in the incoming data.
524 19960926 change: added INSTALL.boot.
525 19960926 portability problem: on systems that can handle IP interface
526 aliases (i.e., on sa_len systems), SIOCGIFADDR returns the
527 primary address for an alias. impact: ipme_init() did not
528 include alias addresses. fix: ipme_init() avoids SIOCGIFADDR on
529 sa_len systems; on these systems, the address we want is
530 already in ifr. tnx DM.
531 19960926 change: qmail-alias kills itself if locking takes longer than
532 30 seconds.
533 19960926 change: qmail-pop3d no longer moves messages. tnx RS.
534 19960924 change: added note to FAQ about descriptors limit. tnx RD.
535 19960922 change: open_trunc() now uses 644.
536 19960922 change: qmail-setup now does umask(077).
537 19960922 change: maildir2mbox now does umask(077).
538 19960922 change: moved subfderr buf up to 64 characters.
539 19960920 change: in SECURITY, ``eight most recent sendmail security
540 holes, three'' -> ``nine most recent sendmail security holes,
541 four.''
542 19960920 portability problem: init run commands are subject to job
543 control signals under more systems than HP-UX. impact: on some
544 systems (e.g., Solaris), qmail daemons would be killed. fix:
545 INSTALL now tells everybody to use csh -cf.
546 19960920 change: added queue-run section to FAQ.
547 19960920 change: in pine-crashing question in FAQ, added -oem and -oi,
548 so that change will work with the real sendmail too.
549 19960919 change: added CNAME section to FAQ. tnx to various people.
550 19960919 change: eliminated QQX_EXECHARD and QQT_EXECHARD. this means
551 that all qmail-queue invocation failures are now soft, even
552 things like EPERM.
553 19960919 change: replaced ``No such address'' with ``Sorry, no mailbox
554 here by that name.'' tnx G2A.
555 19960919 change: qmail-remote now includes host name in no-such-host
556 messages. tnx G2A.
557 19960919 change: replaced ``Temporarily unable to canonicalize address''
558 with ``CNAME lookup failed temporarily.''
559 19960918 change: improved an error message in qmail-alias.c. tnx TG.
560 19960918 change: added SHELL=/bin/sh to Makefile. tnx JL.
561 19960916 change: reorganized INSTALL.ids a bit.
562 19960916 change: ``from smtpd'' is now ``from network''.
563 19960916 change: SMTPD is now DAEMON.
564 19960916 change: qmail-start sets logger uid to UID_LOG. tnx JLH.
565 19960916 change: added CONF_USERL.
566 19960916 change: iaafmt() now puts a dot on in-addr.arpa.
567 19960915 change: added UPGRADE. suggested by several people.
568 19960915 change: added qsutil error messages to qmail-log.5.
569 19960915 change: qsutil error messages are now alerts.
570 19960915 portability problem: on some systems, logger appears to use
571 syslog(pri,buf) instead of syslog(pri,"%s",buf). tnx JC.
572 impact: logger could barf or crash if fed messages containing
573 %. an attacker could easily cause a crash, eliminating qmail's
574 logs. fix: % is no longer considered safe for logs.
575 19960912 cleanup: split seek.c into seek_*.c.
576 19960912 cleanup: replaced seek_to() with seek_set().
577 19960912 cleanup: introduced libseek.a.
578 19960907 cleanup: split case.c into case_*.c.
579 19960907 cleanup: introduced libcase.a.
580 19960907 cleanup: split wait.c into wait_*.c.
581 19960907 cleanup: introduced libwait.a.
582 19960907 cleanup: renamed auto-haswaitp.h to haswaitp.h.
583 19960907 cleanup: split open.c into open_*.c.
584 19960907 cleanup: introduced libopen.a.
585 19960904 change: added generic pointer to qmail-control.5. tnx HW.
586 19960904 change: rewrote rcpthosts section in FAQ. tnx HW.
587 19960904 change: added organization section to FAQ. tnx HW.
588 19960902 qmail 0.91, gamma.
589 19960902 change: control_readfile() can now handle partial lines. tnx
590 JDHB.
591 19960902 change: eliminated non-fqdn note from FAQ. next version of
592 tcpserver will use DNS directly.
593 19960902 change: qlist now uses NEWSENDER, not SENDER.
594 19960902 change: qmail-pop3d no longer obtains a lock. tnx RS.
595 19960902 change: put }g on all seds in Makefile.
596 19960831 change: noted in qmail-control.5 that comments are not allowed
597 in control files. tnx J2B.
598 19960829 change: used double union in alloc.c. tnx ME.
599 19960829 change: replaced semicolon with colon for smtproutes port.
600 19960829 change: in INSTALL, put make man just before make setup.
601 19960829 change: changed a few qmail messages into alerts.
602 19960829 cleanup: renamed datetime_gmt as datetime_tai.
603 19960829 change: added note to UUCP question that some UUCP software
604 doesn't want preline -f. tnx SB.
605 19960829 change: added question 2.4 to FAQ on SLIP/PPP.
606 19960828 change: replaced owner- with owner-@host-@[] in qmail-inject.
607 19690828 change: replaced owner- with owner-@host-@[] in qmail-alias.
608 19960828 change: replaced owner- with owner-@host-@[] in injectbounce().
609 19960828 change: replaced owner- with owner-@host-@[] in senderadd() for
610 owner hack.
611 19960828 change: qmail-inject -n now prints Return-Path.
612 19960825 cleanup: revised ending code in token_addrlist().
613 19960825 change: tokenize now uses linelen 0 for unparse.
614 19960825 change: if linelen is 0 in token822_unparse, no length limit.
615 19960825 change: added LINELEN macro to qmail-inject for unparse.
616 19960825 change: token822_unparse now takes linelen argument. (leaving
617 two spaces on the right before linelen.)
618 19960824 cleanup: renamed token as token822.
619 19960822 portability problem: under NEWS-OS, /bin/mail and /usr/ucb/mail
620 invoke sendmail with -E and -J options. tnx TU. impact:
621 couldn't send mail with those programs. fix: accept opts,
622 including _optional_ args. ugh.
623 19960821 change: sendmail now quits if invoked as newaliases. tnx TU.
624 19960821 portability problem: under NEWS-OS, dirent.h needs sys/types.h.
625 tnx TU. this POSIX violation also appears in some versions of
626 FreeBSD. impact: couldn't compile under NEWS-OS. fix: include
627 sys/types.h in direntry.h* and trydrent.c. [sigh]
628 19960821 change: added concurrencyremote question to FAQ.
629 19960821 change: added chkspawn.
630 19960821 change: moved default SPAWN_NUMD up to 120.
631 19960818 change: allowed ;port in smtproutes. tnx AL.
632 19960818 change: introduced port in qmail-remote.c.
633 19960818 change: qmail-queue records qp in Received lines. 2 lines of
634 code. tnx ME.
635 19960818 change: in SECURITY, ``seven most recent sendmail security
636 holes'' -> ``eight most recent sendmail security holes.''
637 19960818 change: qmail-pop3d now appends an extra blank line to every
638 message, for compatibility with popper. some clients can't
639 deal with the right thing, unfortunately. tnx FPL.
640 19960818 change: added qmail-tcpto.
641 19960818 change: eliminated cc -posix for NeXTs. tnx SA.
642 19960818 change: eliminated loadfifo. tnx SA.
643 19960818 change: integrated auto-configured fifo.c code from SA.
644 19960817 change: put SYSDEPS into a more reasonable order.
645 19960813 change: indicated possibility of duplication when qmail-remote
646 gets a dead connection after DATA. tnx ME.
647 19960813 change: documented qmail-inject environment variables.
648 19960813 change: supported per-recipient owner hack in qmail-inject.
649 19960813 change: supported per-message owner hack in qmail-inject.
650 19960813 change: introduced hackedruser into qmail-inject.
651 19960813 change: introduced QMAILRUSER, QMAILRHOST.
652 19960812 change: added QMAILINJECT option to allow address-comment form.
653 19960812 change: made name-address form the default in qmail-inject.
654 19960812 change: added QMAILINJECT options f and m to delete From and
655 Message-ID on input. tnx LL.
656 19960812 change: added QMAILINJECT environment variable.
657 19960812 change: added QMAILHOST, QMAILUSER, QMAILNAME to override
658 MAILHOST, MAILUSER, MAILNAME. tnx MG.
659 19960812 change: added qmail-showctl.
660 19960812 portability problem: under Solaris 2.4 and possibly other
661 systems, the linker does not give generic alignment to an array
662 of 4096 chars. tnx JP. impact: some subset of the programs
663 would (reliably) die with a bus error; in the Solaris case,
664 maildir2mbox. fix: redefine space in alloc.c to be aligned.
665 19960812 change: qmail-remote no longer does CNAME lookups if there's an
666 artificial SMTP route. tnx ME.
667 19960812 change: added flagcname arg to addrmangle() in qmail-remote.
668 19960812 cleanup: moved host/relayhost processing earlier in
669 qmail-remote.
670 19960812 change: qmail-remote stops before DATA if no RCPTs were
671 successful. tnx JLH.
672 19960812 change: rewrote rcpthosts explanation in FAQ.
673 19960811 change: added qmail-log.5.
674 19960811 change: introduced ALIAS_PATERNALISM. configurability requested
675 by several people.
676 19960811 change: eliminated go-writability test for qmeox(). the alleged
677 value of paternalism is nonexistent if nobody even notices
678 you're doing it.
679 19960811 change: in qbiff, changed no-/-allowed to no-/-at-beginning,
680 no-dots-allowed, must-be-nonempty. tnx MD.
681 19960811 change: in mbox.5, discouraged mail readers from looking for
682 From_ lines only after blank lines. too much crap in the world.
683 19960811 change: added subject line to qreceipt success notices.
684 19960811 change: added subject line to qmail-send bounce messages.
685 19960811 change: qmail-alias now expects dash arg. this finally gives
686 lspawn complete control over the local -> ~user/.qmail-ext map.
687 19960811 change: qmail-lspawn passes dash arg to qmail-alias.
688 19960811 change: reorganized qlist acknowledgment format. again.
689 19960811 change: documented EXT, EXT2, EXT3, EXT4. tnx BB.
690 19960810 change: qmail-makectl now copies locals to rcpthosts. should be
691 a better default. suggested by TK.
692 19960805 portability problem: new makefile generator put in tabs again.
693 sigh. impact: couldn't compile under some systems. fix: same as
694 before. tnx TG.
695 19960804 change: added tcpserver instructions to FAQ.
696 19960804 change: reorganized FAQ server instructions into a new section.
697 19960801 qmail 0.90, gamma.
698 19960801 change: qmail-qmtpd now supports rcpthosts, RELAYCLIENT.
699 19960731 change: default NUMD is now 29. this prepares for weird systems
700 where getpwnam() needs more than one descriptor (but the
701 descriptor limit is still 64! ... you never know), and for
702 possible future getpwnam() replacements.
703 19960731 change: popped subfderr buffer up to 32 characters. made sure
704 that everybody flushed subfderr as necessary.
705 19960731 change: maildir2qmtp now prints filenames and responses.
706 19960731 change: maildir2smtp now prints filenames it's trying and
707 relevant portion of SMTP responses.
708 19960731 change: used succwrite() in maildir2smtp, maildir2qmtp.
709 simplifies code quite a bit.
710 19960731 change: qmail-remote's blast() checks sooner for write errors.
711 19960731 change: added better -e option to sendmail. tnx TG.
712 19960731 change: added maildir2qmtp.
713 19960730 cleanup: eliminated die_nomem() in maildir2smtp.c.
714 19960730 change: dns_cname now pretends that "foo." is a CNAME for "foo"
715 to give the desired behavior for people who misuse DNS and
716 violate RFC 822. tnx RN.
717 19960730 change: dns_cname now tests for empty names and ] on every
718 loop.
719 19960730 change: used LSPAWN_BREAK in qmail-send.c for usermap.
720 19960730 change: updated header example in qmail-header.5.
721 19960730 change: added printbreak. auto-configured BREAK in dot-qmail.5,
722 qmail-lspawn.7, qmail-send.8, qmail-upgrade.7, qlist2.
723 19960730 change: added printnumd. auto-configured NUMD in qmail-send.8,
724 qmail-limits.8.
725 19960730 change: added printsplit. auto-configured split in qmail-upq.
726 19960730 change: added dot-qmail.5.
727 19960730 change: qmail-smtpd now treats HELO as including RSET.
728 19960730 change: added moreinfo to qlist usage message.
729 19960729 change: improved an error message in qmail-alias.
730 19960729 cleanup: merged qmeox(), qmeodx().
731 19960729 bug: failure to stat .qmail-owner was not an error. impact: if
732 stat failed temporarily (e.g., because of NFS), .qmail-owner
733 would be incorrectly ignored, so outgoing message would have
734 wrong envelope sender. fix: qmail-alias does temp_nfsqmail() if
735 stat() returns a temporary error.
736 19960729 change: added RFCOWNER.
737 19960729 change: added qmtpd setup question to FAQ.
738 19960729 change: added qmail-qmtpd.
739 19960728 change: revamped maildir2smtp error messages.
740 19960728 change: revamped maildirwatch error messages.
741 19960728 change: revamped maildir2mbox error messages.
742 19960728 change: used strerr in maildir_scan().
743 19960728 change: used strerr in maildir_chdir().
744 19960728 change: introduced strerr.
745 19960728 bug: the new tcp-env tried to read from an ndelay socket.
746 impact: TCPREMOTEINFO would always be empty. fix: unset ndelay
747 in remoteinfo.c.
748 19960728 bug: if maildir2smtp saw a permanent failure after MAIL, it
749 failed to do RSET. impact: all further messages would be
750 rejected at the MAIL stage. fix: maildir2smtp now always does
751 RSET. tnx JW.
752 19960728 cleanup: qmail-alias now applies lowercase and dot-to-colon
753 conversion directly to dashext, leaving everything else alone.
754 this works since all .qmail access is factored through dashext.
755 19960727 portability problem: under NeXTStep, -posix is almost entirely
756 broken. impact: qmail daemons would dump core under NeXTStep.
757 fix: turn off -posix, except for loading qmail-setup, which
758 needs mkfifo(); NeXT, bless them, didn't put mkfifo() into the
759 C library where it belongs. this requires a new make command,
760 namely loadfifo.
761 19960727 change: all characters 33-126 are now considered safe for logs.
762 tnx MD.
763 19960727 cleanup: eliminated qp variable from mailforward().
764 19960727 cleanup: maildirwatch.c includes headerbody.h.
765 19960727 cleanup: eliminated match from maildirwatch.c.
766 19960727 cleanup: eliminated code variable from maildir2smtp.c:doit().
767 19960727 cleanup: maildir2smtp.c includes scan.h.
768 19960727 cleanup: maildir.c includes str.h.
769 19960727 cleanup: qmail-popup.c now includes exit.h.
770 19960727 cleanup: qmail-pop3d.c now includes exit.h.
771 19960727 cleanup: eliminated path from qmail-start.c.
772 19960727 cleanup: eliminated birthplusnn from nextretry().
773 19960727 cleanup: eliminated r from timeoutconn().
774 19960727 cleanup: tcpto.c now includes byte.h.
775 19960727 cleanup: spawn.c now declares initialize().
776 19960727 cleanup: qmail-lspawn.c now includes str.h, byte.h.
777 19960727 cleanup: qmail-inject.c now includes quote.h.
778 19960727 change: qmail-check now checks separately for group
779 readability and other readability.
780 19960727 bug: maildir2smtp didn't check flagehlo in PIPELINING parsing.
781 impact: a server that said PIPELINING at any point, not just
782 EHLO, would receive pipelined data. fix: check flagehlo.
783 19960727 bug: readsubdir was calling pause(). impact: if a subdirectory
784 was removed, qmail-send would hang. fix: use rs->pause().
785 19960727 change: used error_str in qmail-qread.
786 19960727 change: qmail-qread now looks for local/remote open errors.
787 19960727 cleanup: added warn() in qmail-qread.c.
788 19960727 change: qmail-qread now exits 111 for temporary errors.
789 19960727 change: used error_str in qmail-setup.
790 19960727 change: introduced error_str.
791 19960727 change: replaced qmail-check with make check in INSTALL.
792 19960727 change: added check target to Makefile.
793 19960727 change: replaced qmail-setup with make setup in INSTALL.
794 19960727 change: indirected fake targets through do- targets.
795 19960727 change: added setup target to Makefile.
796 19960727 change: qmail-makectl now makes sure that defaultdomain has
797 at least one dot. e.g., enteract.com -> enteract.com, not com.
798 19960726 bug: quote() failed to quote commas. impact: addresses
799 containing commas would not have been quoted correctly for
800 Return-Path or for SMTP MAIL FROM. fix: quote commas.
801 19960726 change: sendmail now mentions qmail-qread, not qmail-mailq.
802 19960726 change: qmail-alias now expects ext arg. this eliminates
803 LSPAWN_BREAK from qmail-alias and gives lspawn almost complete
804 control over the local -> ~user/.qmail-ext transformation. the
805 exception is that qmail-alias always uses ~user/.qmail,
806 ignoring ext, if local is the same as user.
807 19960726 change: qmail-lspawn passes ext to qmail-alias.
808 19960726 change: alloc() now uses up a 4K space before calling malloc().
809 19960726 change: ipalloc allocation base is now 10. 100 was silly.
810 19960726 change: stralloc allocation base is now 30.
811 19960726 change: injectbounce() now supports the owner hack.
812 19960726 change: qmail-smtpd no longer requires HELO. tnx K1J.
813 19960726 cleanup: replaced makereceived() with dohelo().
814 19960726 change: qmail-smtpd is back to 555 for syntax errors.
815 19960725 change: qmail-alias now supports the owner hack. tnx to RN for
816 prodding me to look at this problem.
817 19960725 change: senderadd() now supports the owner hack.
818 19960725 cleanup: split off senderadd().
819 19960725 change: added pine-crashing note to FAQ.
820 19960725 change: added procmail config.h note to INSTALL.mbox.
821 19960725 change: added elm TMPDIR note to INSTALL.mbox.
822 19960725 change: added pine.conf note to INSTALL.mbox.
823 19960724 change: added fixup note to FAQ.
824 19960724 change: qmail-inject now exits 111 for temporary errors.
825 19960724 change: qmail-smtpd now appends RELAYCLIENT to incoming
826 recipient domain names.
827 19960724 cleanup: moved relayclient out of qmail-smtpd's addrallowed()
828 into caller.
829 19960724 change: added rcpthosts wildcards.
830 19960724 change: added clean target to Makefile.
831 19960723 change: added virtualdomains exceptions.
832 19960722 change: added BLURB4.
833 19960722 change: added BLURB3.
834 19960722 change: eliminated smarthost and localnet.
835 19960722 change: incorporated relaymap, contributed by LW. renamed it
836 as smtproutes.
837 19960722 change: qmail-popup now supports APOP. suggested by BG, who
838 distributed similar changes.
839 19960722 change: qmail-popup now sends APOP timestamp to checkpassword.
840 19960722 cleanup: in qmail-popup, split off doanddie().
841 19960722 change: qmail-popup now prints APOP timestamp in banner.
842 19960722 change: added hostname argument to qmail-popup.
843 19960722 cleanup: in qmail-popup, split out() into out(), outflush().
844 19960722 cleanup: in qmail-popup, introduced pop3_greet().
845 19960721 portability problem: under Unisys SVR4, hostname is not in the
846 usual path. impact: qmail-makectl fails. fix: added hostname
847 command here, used it in qmail-makectl.
848 19960721 portability problem: on some sysctl-based systems, apparently
849 gethostname() doesn't write anything if the output buffer is
850 too small. it should write a truncated name. impact: if anyone
851 has a hostname longer than 64 characters, maildirs could get up
852 to 64 characters of garbage, rather than a truncated hostname.
853 fix: qmail-alias now does *host = 0 before calling gethostname.
854 19960721 change: updated FAQ examples from qsmhook to preline.
855 19960721 change: added preline.
856 19960721 change: qsmhook now uses signal_init, signal_uninit.
857 19960721 change: qsmhook now checks specifically for empty args.
858 19960721 change: documented mbox.
859 19960721 change: added EXT, EXT2, EXT3, EXT4.
860 19960721 change: added LAST response to qmail-pop3d, always returning
861 OK 0. tnx RN.
862 19960721 change: added qmail home page to README.
863 19960721 change: added HELP response to qmail-smtpd. tnx RN.
864 19960720 change: expanded, vertically, the qmail-inject error message
865 for unparseable header fields.
866 19960720 change: logo is now dolphin. tnx CEJ.
867 19960719 qmail 0.76, beta.
868 19960719 change: used LSPAWN_BREAK in qmail-alias for deciding how to
869 handle extensions. this should produce better behavior in the
870 (unsupported) case that LSPAWN_BREAK is not a hyphen.
871 19960719 bug: qmail-smtpd didn't check for null arg on MAIL, RCPT.
872 impact: qmail-smtpd would deref 0 and crash. fix: qmail-smtpd
873 now gives syntax error on null arg.
874 19960719 change: documented UFLINE in qmail-command.8. tnx TG.
875 19960718 change: added maildir2smtp.
876 19960718 cleanup: introduced maildir.c. used it in maildir2mbox.c,
877 maildirwatch.c.
878 19960718 change: added maildirwatch.
879 19960718 cleanup: maildir2mbox now sets up pq2 as it is deleting from
880 pq, rather than simultaneously with pq.
881 19960718 change: added H_DELIVEREDTO.
882 19960718 portability problem: Unisys requires -lsocket -lnsl. impact:
883 couldn't compile under Unisys. fix: added unix_sv section to
884 make-cmds.sh. tnx TVP.
885 19960718 change: added unix_sv section in find-systype. tnx TVP.
886 19960717 change: qmail-alias now appends newline if .qmail does not end
887 with a newline. tnx MC.
888 19960717 change: qmail-alias now defers delivery for a blank line only
889 if it is the first line of the file. handles user behavior
890 described by MC of putting many newlines at end of file.
891 19960717 bug: qmail-inject looked for dots in user part, not just host
892 part, when deciding whether to use defaultdomain. impact: the
893 address joe.bloggs@here didn't have defaultdomain added. fix:
894 qmail-inject now stops at the @.
895 19960717 change: updated INSTALL.alias to mention qmsmac.
896 19960717 change: syntax error code for SMTP is now 501.
897 19960717 change: added -e option to sendmail. tnx TG.
898 19960716 change: changed ~alias files to .qmail-local, not .qmaillocal.
899 suggested by many people.
900 19960716 change: redid qmail-alias/qmail-lspawn interface.
901 19960716 change: replaced EXTENSION, USEREXT with LOCAL.
902 19960716 change: qmail-queue now removes intd, mess upon error, as long
903 as it doesn't time out. suggested by BB et al.
904 19960716 change: added flagmademess, flagmadeintd to qmail-queue.c.
905 19960716 cleanup: changed todofd to intdfd in qmail-queue.c.
906 19960716 cleanup: added cleanup() to qmail-queue.c.
907 19960716 change: added timeout to tcp-env.c, default 30 seconds.
908 19960716 change: remoteinfo_get() now uses timeoutconn().
909 19960715 change: added procmail config.h note to FAQ.
910 19960704 change: qmail-upgrade.7 now warns administrators that ~alias
911 generally doesn't apply to addresses starting with a user name.
912 19960703 change: added echo \c note to FAQ. tnx PJG.
913 19960702 change: qmail-smtpd now accepts HELO without an argument.
914 tnx K1J, J1B.
915 19960627 change: qmail-lspawn.8 now mentions that qmail-lspawn doesn't
916 set up supplementary groups. tnx TG.
917 19960625 portability problem: under Linux, read(,,0) doesn't do proper
918 error slippage. impact: timeoutconn() would always report
919 success; if a connection failed, qmail-remote would report a
920 greeting failure and skip all further MX records. tnx ME. fix:
921 timeoutconn() now uses getpeername() to check for success.
922 19960625 change: qmail-smtpd now mentions disk full for QQT_WRITE.
923 19960625 change: qmail-inject now mentions disk full for QQT_WRITE.
924 19960622 change: if RELAYCLIENT is set, qmail-smtpd skips rcpthosts.
925 19960609 change: updated INSTALL for current SMTP responses.
926 19960607 change: clarified INSTALL.qsmhook examples. tnx S1R.
927 19960607 change: added subject parsing to qlist.c. tnx RN.
928 19960607 cleanup: used case_diffb in qlist.c.
929 19960607 change: added extra log information to INSTALL examples.
930 19960606 change: added -Pn to uucp line in FAQ. tnx DWS.
931 19960605 portability problem: under Solaris, /usr/bin/groups incorrectly
932 reports your groups in /etc/group, rather than the results of
933 getgroups(). tnx MD, PJG. impact: test #19 in INSTALL fails.
934 fix: added special note to test #19 (sigh) about Solaris.
935 19960605 change: improved maildir setup commands in INSTALL.mbox.
936 19960605 change: on success, qmail-alias logs forwarding qp. 9 lines
937 extra code.
938 19960605 change: qmail-send logs qp for bounce. 6 lines extra code.
939 19960605 change: qmail-smtpd includes qp in its response when it accepts
940 a message. 7 lines extra code. requested by MD and others.
941 19960605 change: added qqtalk_qp.
942 19960605 change: qmail-send now logs uid and qp from todo file. 14 lines
943 extra code.
944 19960605 change: qmail-queue now records uid and qp in u and p lines
945 in todo file. 7 lines extra code.
946 19960605 change: improved qmail-alias x-bit error messages.
947 19960605 change: newline in log is now converted to /, not underscore.
948 19960604 change: when it accepts a message, qmail-smtpd includes the
949 local time in its 250 response.
950 19960604 change: on success, qmail-alias prints delivery counts,
951 file+forward+program.
952 19960603 change: qmail-remote now reports IP address on success. tnx MD.
953 19960603 change: qmail-send now logs success and failure reports, not
954 just deferral reports.
955 19960603 change: added netbsd section in find-systype, same as bsd.os
956 section. this will affect netbsd-* systypes. tnx MBS.
957 19960530 qmail 0.75, beta.
958 19960528 change: added qmail.7. tnx MD.
959 19960525 change: added qmail-pop3d. tnx RN.
960 19960525 change: added qmail-popup. tnx RN.
961 19960525 change: added elm filter section to FAQ. tnx GB.
962 19960502 portability problem: on many systems, select() on an
963 almost-full pipe incorrectly says writable. tnx ME for running
964 into this and helping track it down. impact: if qmail-send
965 writes a pipeful to qmail-lspawn or qmail-rspawn before they
966 can react (because of high concurrency, high load, or long
967 addresses), it will receive an incorrect -1/EAGAIN, and will
968 conclude that spawn died. sysadmin will have to restart qmail,
969 and messages will be duplicated. fix: in qmail-send.c,
970 busy-loop if write() to spawn returns any error other than
971 EPIPE.
972 19960501 bug: qmail-alias treated NAMETOOLONG and NOTDIR as temporary
973 errors. impact: qmail-alias never looked for -default; even if
974 mail was destined to bounce, it would have to time out first.
975 fix: qmail-alias now uses error_temp().
976 19960430 bug: qmail-smtpd treated qq crash as permanent error. impact:
977 if somebody actively kills qq, mail will be incorrectly
978 bounced. tnx SS. fix: qmail-smtpd now treats only TOOLONG and
979 EXECHARD as permanent errors.
980 19960430 cleanup: eliminated QQT_TTY from qqtalk.h.
981 19960428 change: added ``warning: '' before trouble-marking message.
982 19960428 change: added percenthack. requested by GB.
983 19960428 cleanup: switched to auto-generated Makefile.
984 19960428 cleanup: switched to auto-generated .o dependencies.
985 19960428 cleanup: eliminated fmt.o, scan.o from Makefile.
986 19960428 portability problem: under HP-UX 10, the rc pgrp is sent HUP
987 when rc finishes. tnx BG. impact: the qmail daemons are killed
988 when rc finishes. fix: added special note in INSTALL (sigh) to
989 use csh -cf.
990 19960427 cleanup: added PORT_SMTP in qmail-remote.c.
991 19960427 cleanup: introduced timeoutwrite.c. used it in qmail-remote.c.
992 19960427 cleanup: introduced timeoutread.c. used it in qmail-remote.c.
993 19960427 cleanup: introduced timeoutconn.c. used it in qmail-remote.c.
994 19960427 change: added timeoutconnect. default: 60 seconds.
995 19960427 change: added pop3d instructions to FAQ. tnx RN.
996 19960427 change: eliminated env manipulation from qmail-start. tnx BG.
997 19960427 change: headerbody now ends header, inserting blank line, if
998 first line of a header field doesn't pass hfield_valid. tnx TG.
999 19960427 change: headerbody now prepends MBOX-Line: to any header line
1000 starting From_. this lets qmail-inject work with elm's bounce.
1001 tnx OR, K1J, et al.
1002 19960426 change: added moreinfo arg to qlist and qlist2.
1003 19960426 change: added signal_uncatchchild() to qmail-send.c. tnx BG.
1004 now, if sysadmin sets SIGCHLD to SIG_IGN before invoking
1005 qmail-send [sigh], qmail-send won't screw up bounce messages.
1006 19960426 change: dns_cname now checks whether last character is ],
1007 rather than whether first character is [, for quick return.
1008 19960426 cleanup: glue is now global in dns.c.
1009 19960426 cleanup: qmail-remote no longer does stralloc_0 for host and
1010 canonhost.
1011 19960426 change: dns_mxip no longer rejects [foo].bar.
1012 19960426 change: dns_mxip no longer requires for bracket that input
1013 be 0-terminated.
1014 19960426 change: qmail-start can now take logger as an argument.
1015 19960426 change: qmail-start now invokes qmail-send in foreground (as
1016 parent of other processes).
1017 19960426 change: added mailsubj. tnx GAW.
1018 19960426 portability problem: under some systems, can't lock read-only
1019 file. impact: maildir2mbox would always fail on those systems.
1020 fix: maildir2mbox now opens a separate lock fd. tnx BG.
1021 19960426 cleanup: removed unnecessary #!/bin/sh and # AUTO from mctl.sh.
1022 19960426 change: added qmail-qstat.
1023 19960426 change: added qmail-qread.8.
1024 19960426 change: renamed qmail-mailq as qmail-qread.
1025 19960419 change: qmail-alias now defers delivery rather than skipping
1026 blank lines in .qmail.
1027 19960419 change: in qmail-lspawn.c, lowercased name before getpwnam().
1028 really getpwnam() should do this, but oh well.
1029 19960419 change: added username to qmail-lspawn.c, with LSPAWN_USERLEN
1030 in conf-unusual.h. names longer than LSPAWN_USERLEN will skip
1031 getpwnam().
1032 19960419 change: if qlist doesn't see any cmds, it presumes that you
1033 meant to subscribe.
1034 19960419 change: reorganized qlist acknowledgment format.
1035 19960415 change: reorganized and rewrote FAQ.
1036 19960415 change: renamed HOWTO as FAQ.
1037 19960414 change: in qmail-alias, converted extension to lowercase just
1038 before qmeopen(), qmeox() calls. thus EXTENSION and USEREXT and
1039 RECIPIENT will preserve case passed by qmail-lspawn, while
1040 .qmailext lookups will not.
1041 19960414 change: removed case_lowers(r) from qmail-lspawn.c. tnx JLH.
1042 19960414 change: moved extension . -> : conversion to just before
1043 qmeopen(), qmeox() calls in qmail-alias.c. thus EXTENSION and
1044 USEREXT and RECIPIENT will preserve dots.
1045 19960414 change: qsmhook -x now does case-independent comparison.
1046 19960413 change: added procmail instructions to HOWTO.
1047 19960409 bug: qmail-alias does not check for newlines when it generates
1048 Return-Path. impact: resulting Return-Path header field will be
1049 illegal, if sender address contains newline followed by
1050 something other than whitespace. fix: qmail-alias now replaces
1051 newline with underscore in rpline.
1052 19960409 change: added leaf UUCP description to HOWTO. tnx J2K.
1053 19960409 change: added -B option to sendmail. tnx OR.
1054 19960409 change: qlist now makes lists unwritable (after renaming from
1055 .qtemp to .qmail). tnx MLH.
1056 19960409 change: added flagdtline to qsmhook.c, based on -l option.
1057 19960409 change: added PIPELINING declaration to qmail-smtpd. tnx JGM.
1058 19960409 change: qmail-smtpd now flushes output instantly after DATA,
1059 QUIT, HELO, EHLO, NOOP, VRFY, or any 502.
1060 19960409 change: qmail-smtpd now flushes output upon read() and death.
1061 19960409 change: qmail-smtpd no longer flushes output in out().
1062 19960409 change: increased qmail-smtpd outbuf size from 128 to 512.
1063 19960409 cleanup: in qmail-smtpd, eliminated ssinit() in favor of FDBUF.
1064 19960409 bug: qmail-alias produced aliasfoo-owner rather than foo-owner
1065 as envelope sender for ~alias/.qmailfoo. tnx DS. impact: wrong
1066 envelope sender whenever ~alias/.qmailfoo-owner existed. fix:
1067 qmail-alias now checks for hyphen at beginning of extension.
1068 19960409 change: added _ESMTP to end of 220. tnx JLH.
1069 19960409 change: moved out("\r\n") out of smtp_greet() into callers.
1070 this improves the flushing behavior on 221.
1071 19960328 qmail 0.74, beta.
1072 19960326 change: changed subdirectory split from 32 to 23.
1073 19960326 portability problem: some versions of make don't understand
1074 that a line with just a tab is blank. impact: couldn't compile
1075 under those systems. fix: eliminated extra tab from Makefile.
1076 tnx TG.
1077 19960325 change: added qmail-mailq.
1078 19960325 change: introduced readsubdir.
1079 19960325 change: qmail-setup makes split; qmail-check checks split.
1080 19960325 change: used split in qmail-send, qmail-clean, qmail-queue
1081 for mess, info, local, remote.
1082 19960325 change: fmtqfn now supports split queue subdirectories.
1083 19960325 cleanup: eliminated cat2s().
1084 19960325 cleanup: introduced fmtqfn.c. used it in qmail-queue.c,
1085 qmail-send.c, qmail-clean.c.
1086 19960325 change: in protocol between qmail-clean and qmail-send, now
1087 using intd/ instead of mess/.
1088 19960325 change: qmail-queue.c and triggerpull.c now work inside queue
1089 subdirectory.
1090 19960325 change: spawn.c now checks whether message is a regular file.
1091 19960325 change: spawn.c now allows slashes in messid except at
1092 beginning.
1093 19960325 cleanup: introduced fnmake_split in qmail-send.c.
1094 19960325 cleanup: eliminated strnum in qmail-send.c in favor of
1095 fnmake_{info,todo,mess,chanaddr} and fnmake2_bounce.
1096 19960325 cleanup: introduced strnum3 in qmail-send.c for the logging
1097 uses of strnum.
1098 19960325 cleanup: in qmail-send.c, getinfo() now takes id argument.
1099 19960325 cleanup: qmail-send.c now preallocates space for fn, fn2.
1100 19960325 change: time zone is now -0000 instead of +0000. encouraging
1101 DRUMS to use this as an i-don't-know-the-local-time indicator.
1102 19960324 change: qmail-rspawn.c now calls tcpto_clean().
1103 19960324 cleanup: spawn.c now calls initialize().
1104 19960324 change: qmail-setup makes lock/tcpto; qmail-check checks it.
1105 19960324 change: qmail-remote now quickly skips connect() to a host that
1106 seems to be down. tnx BP for pressuring me to get this done.
1107 19960323 change: in qmail-alias.8, renamed mboxg as mboxrd. tnx RD.
1108 idea was popularized by RD in June 1995.
1109 19960322 cleanup: eliminated subfd_init().
1110 19960322 change: qbiff now removes the word Subject.
1111 19960322 change: now /bin/true instead of /dev/null in the generic
1112 INSTALL.ids instructions. tnx JPR.
1113 19960322 change: added hfield_skipname(). tnx RN.
1114 19960322 bug: qmail-inject did not check whether USER needed quoting.
1115 impact: if USER had weird characters, the From address would
1116 generally be wrong, unless the user manually set up MAILUSER
1117 with proper quoting. fix: qmail-inject sets up a quoted-string
1118 if necessary.
1119 19960322 cleanup: separated out quote_need() in quote.c.
1120 19960322 cleanup: added stralloc_catb.c. used it in qmail-alias.c,
1121 qmail-send.c.
1122 19960322 change: qmail-send now uses a quadratic retry schedule from
1123 birth of each message. this also eliminates clustering.
1124 19960322 cleanup: separated out nextretry() in qmail-send.c.
1125 19960322 change: qmail-remote now passes all non-@ addresses through
1126 without comment, not just <> and <#>.
1127 19960322 change: replaced # test with anything@[] test in qmail-inject.
1128 19960322 change: replaced # with #@[] in qlist.c, qmail-alias.c,
1129 qmail-send.c, qreceipt.c.
1130 19960322 change: qmail-lspawn no longer discards messages to <#>.
1131 19960322 cleanup: in qlist, used str_diff for <> and <#> tests.
1132 19960322 change: qmail-alias is now back to testing envelope sender for
1133 <> and <#>, rather than things without an @.
1134 19960321 change: added 8BITMIME support to qmail-smtpd.
1135 19960321 change: added ESMTP support to qmail-smtpd.
1136 19960318 change: used NEWSENDER in place of SENDER for |forward.
1137 19960318 change: added NEWSENDER.
1138 19960318 change: added HCMSSC support to qmail-alias.c.
1139 19960318 change: added HCMSSC support to spawn.c.
1140 19960318 change: added HCMSSC support to qmail-remote.c.
1141 19960318 change: added HCMSSC support to qmail-smtpd.c.
1142 19960317 portability problem: SCO requires -lsocket -lnsl. impact:
1143 couldn't compile under SCO. fix: added SCO section in
1144 make-cmds.sh. tnx JPR. note that this is for OSR 5; 3.2v4.2
1145 will need more fixes, and old 3.2 is basically hopeless.
1146 19960317 bug: newfield_datemake would leave newfield_date alone if it
1147 was already initialized, even though qmail-send calls
1148 newfield_datemake anew for each bounce. impact: bounce messages
1149 would usually have an incorrect Date field. fix: redid
1150 newfield_datemake to update newfield_date each time.
1151 19960317 change: allowed . and @ in 822 phrases; 822 doesn't allow them,
1152 but they do show up. tnx to the DRUMS group.
1153 19960317 change: replaced GMT with +0000 in date822fmt.c. this confuses
1154 a few versions of getdate(), but the DRUMS group is going to
1155 outlaw GMT, not just recommend against it as in 1123.
1156 19960317 change: redefined ALIAS_EMPTY to take advantage of . for file
1157 deliveries. tnx RN.
1158 19960317 change: qmail-alias now allows . as well as / to start file
1159 deliveries. tnx RN.
1160 19960317 change: qmail-alias now dies (soft) if .qmail is writable to
1161 others, rather than silently ignoring it.
1162 19960317 change: qmail-alias now dies (soft) if flagforwardonly is
1163 violated, rather than silently ignoring the bad instructions.
1164 19960317 change: qmail-alias now ignores x bit on empty .qmail files.
1165 19960317 bug: if RCPT gave 4xx and DATA gave 5xx, qmail-rspawn would
1166 incorrectly assign a permanent failure to that recipient.
1167 impact: in that case, mail would be incorrectly bounced. fix:
1168 remove orr > 0 test from qmail-rspawn.c.
1169 19960310 change: tcp-env now uses signal_uninit(). [sigh]
1170 19960310 change: tcp-env now specifically unsets HOST and INFO if they
1171 are not applicable. just trying to make it more widely usable.
1172 19960310 cleanup: used byte_* in remoteinfo.c, ipme.c, tcp-env.c.
1173 19960310 cleanup: added readwrite.h, eliminated sys.h.
1174 19960310 cleanup: included byte.h in qmail-send.c.
1175 19960310 cleanup: eliminated i and j from forward.c's main().
1176 19960310 cleanup: eliminated wstat from qlist.c.
1177 19960310 cleanup: eliminated die_nomem() parameter in qmail-setup.c.
1178 19960310 cleanup: eliminated i from qmail-remote's addrmangle().
1179 19960310 cleanup: added exit.h.
1180 19960310 cleanup: split ipalloc.c off of ip.c.
1181 19960310 cleanup: added fmt_strn.c, eliminated fmt_strncpy.c.
1182 19960310 change: reorganized INSTALL to do some pre-upgrade tests.
1183 tnx RN.
1184 19960310 change: reordered steps in upgrade procedure in INSTALL.
1185 19960308 change: eliminated ownership test in qmail-alias.c. tnx DS.
1186 19960304 change: in SECURITY, ``six most recent sendmail security
1187 holes'' -> ``seven most recent sendmail security holes.''
1188 19960303 qmail 0.73, beta.
1189 19960303 change: added SYSDEPS.
1190 19960303 cleanup: revamped select.h autoconfiguration.
1191 19960303 cleanup: revamped fork.h autoconfiguration.
1192 19960303 cleanup: revamped direntry.h autoconfiguration. target is now
1193 direntry.h; auto-hasdrent.h is gone.
1194 19960303 change: tryflock.c now includes <sys/types.h>, for consistency
1195 with lock.c. may affect portability.
1196 19960302 portability problem: under BSDI, can't set sticky on normal
1197 files. dorks. impact: the new qlist doesn't work under BSDI;
1198 be glad I test things before release. fix: qmail-alias and
1199 qlist now use executable instead of sticky.
1200 19960302 change: gfrom now quotes >From and >>From etc. as well as From;
1201 in other words, I'm switching from mbox format to mboxg format.
1202 19960302 cleanup: added gfrom.c. used it in qmail-alias.c, maildir2mbox.c.
1203 19960302 change: addbounce() now substitutes \n\n -> \n/ in reports,
1204 and \n -> _ in recips. thus bounces can now be reliably parsed.
1205 19960302 change: if qmail-send had trouble reading the original message
1206 or the list of addresses for a bounce, it used to give up and
1207 send a bounce with "Oh no! I had trouble reading the rest of
1208 your message" or some such. now it aborts the bounce attempt
1209 and tries again later.
1210 19960302 cleanup: added qqtalk_fail(). used it in qmail-alias.c,
1211 qmail-smtpd.c.
1212 19960302 bug: if mailforward() had trouble reading message (e.g.,
1213 because of an I/O error), it marked an error but kept reading.
1214 impact: could loop forever. fix: upon error, break.
1215 19960302 change: maildir2mbox now scans (restrictively) for return-path.
1216 19960302 change: qbiff now prints subject and body, up to 74 chars.
1217 19960302 change: added H_SUBJECT to hfield.
1218 19960302 change: qbiff now puts TO before FROM.
1219 19960301 cleanup: added fmt_str.c. used it in many places.
1220 19960301 change: qmail-send now says something if you've told it to exit
1221 but it's waiting for some deliveries. tnx RN.
1222 19960301 change: qmail-alias -n now continues (with warning) if home
1223 directory is sticky. tnx RN.
1224 19960301 change: improved usage messages in qmail-alias.c. tnx RN.
1225 19960301 change: put limit on length of addresses in qlist.
1226 19960301 change: added exit 99 support to qmail-alias. tnx RN.
1227 19960301 change: qmail-alias now exits immediately on temporary or
1228 permanent error. rewrote section in qmail-alias.8 accordingly.
1229 19960301 cleanup: eliminated flagsuccesses from qmail-alias.c.
1230 19960301 change: added usermap.
1231 19960301 bug: failure to append to mbox was a permanent error. impact:
1232 if mbox was temporarily unopenable (e.g., because fds were
1233 low), mail would be incorrectly bounced. fix: failure is now
1234 temporary. tnx DS.
1235 19960229 change: qmail-alias now preserves any envelope sender that
1236 doesn't contain an @, not just <> and <#>.
1237 19960229 cleanup: revamped byte_* interface.
1238 19960229 cleanup: renamed str_cpy as str_copy.
1239 19960229 cleanup: added str_chr.c. used it in qbiff.c, qmail-smtpd.c.
1240 19960229 cleanup: added str_rchr.c. used it in qmail-send.c, quote.c,
1241 qmail-remote.c.
1242 19960229 cleanup: added byte_rchr.c. used it in qmail-smtpd.c, spawn.c.
1243 19960229 cleanup: used USEREXT instead of RECIPIENT in qsmhook.c.
1244 19960229 cleanup: used USEREXT instead of RECIPIENT in qbiff.c.
1245 19960229 cleanup: removed j and k from rewrite() in qmail-send.c.
1246 19960229 portability problem: under HP-UX 10 and Solaris 2.5, can't
1247 setgroups()/setgid() to the system's nogroup/nobody gid. dorks.
1248 impact: inetd chokes, so all SMTP connections are rejected; and
1249 ``alias'' mail, including postmaster, bounces. fix: in
1250 INSTALL.ids, set up a separate powerless gid (tentatively
1251 ``nofiles'') for qmaild and alias. tnx DS and PJG.
1252 19960229 change: qreceipt now uses qqtalk rather than qmail-inject.
1253 19960229 change: qlist now uses qqtalk rather than qmail-inject.
1254 19960229 change: incorporated qmail-setup patch from RN for better
1255 error messages.
1256 19960228 change: added LSPAWN_BREAK in conf-unusual.h; used it in
1257 lspawn.c. configurability requested by PJG.
1258 19960228 portability problem: on several systems, including everything
1259 from DEC, select() on a pipe reader returns 1 if there aren't
1260 any writers yet. pointed out by DS. impact: qmail-send chewed
1261 up lots of CPU time. fix: trigger_set() now opens the pipe for
1262 writing after opening it for reading. also added trynpbg1; on
1263 working systems, no point in wasting the extra fd.
1264 19960228 change: qmail-alias uses .qmail sticky bit for forwardonly.
1265 19960228 change: qlist now sets sticky bit on .qmail file.
1266 19960228 change: un-documented +list.
1267 19960228 portability problem: on HP-UX and possibly other systems, the
1268 supplementary group list does not include the gid. pointed out
1269 by DS. impact: on those systems, tryshsgr could incorrectly set
1270 hasshsgr; this would prevent qmail-send from running. fix: if
1271 tryshsgr sees that getgroups() returns 0, now it actively sets
1272 up a supplementary group list. added chkshsgr to make sure the
1273 setgroups() will work.
1274 19960227 cleanup: eliminated GETSHORT in dns.c in favor of getshort().
1275 19960227 cleanup: deleted h->len < 3 test from qlist.c:dobody. tnx RN.
1276 19960227 change: replaced ~ with $HOME in INSTALL.mbox.
1277 19960227 change: added note about setgid-mail bits to INSTALL.mbox.
1278 19960227 change: added forward.1.
1279 19960227 change: modified forward to allow multiple addresses.
1280 19960227 change: modified forward to take an entire address, not just a
1281 hostname.
1282 19960227 change: renamed qrelay as forward.
1283 19960227 change: added USEREXT support to qmail-alias.
1284 19960227 change: added -F to sendmail. the need for this was pointed
1285 out by RN.
1286 19960227 change: added 2 bytes of slop in alloc().
1287 19960227 bug: received_setup() was not allowing space for the final \0.
1288 impact: none; the line length is always between 65 and 75
1289 characters, which gives at least 45 characters of slop with
1290 existing malloc() implementations. fix: leave space. tnx NH.
1291 note that the bug here is really in fmt_strncpy, which was
1292 written before i was truly free of the curse of libc.a.
1293 19960227 change: added ALIAS_EMPTY in conf-unusual.h; used it in
1294 qmail-alias.c. tnx PJG.
1295 19960227 change: added SPAWN_NUMD in conf-unusual.h; used it in spawn.c.
1296 19960227 change: added conf-unusual.h.
1297 19960227 cleanup: replaced sizeof(short) with 2 in dns.c.
1298 19960227 portability problem: on an Alpha, long is 64 bits. pointed out
1299 by DS. impact: address lookups produced incorrect results on an
1300 Alpha; qmail-makectl and qmail-remote failed. fix: replaced
1301 sizeof(long) with 4 in dns.c.
1302 19960227 portability problem: on an Alpha, bzero() is declared properly
1303 via sys/time.h. impact: couldn't compile on an Alpha. fix:
1304 removed bzero() declaration from select.h. tnx DS.
1305 19960227 portability problem: under SCO, sys/file.h is not protected.
1306 impact: couldn't compile under SCO. fix: include sys/types.h in
1307 lock.c. tnx RN.
1308 19960219 change: added some .qmail-list hints to qlist.1.
1309 19960219 change: added +list support to qmail-alias.
1310 19960215 change: added THANKS.
1311 19960212 bug: foo was not initialized in qrelay.c. impact: depends on
1312 the machine; on some machines, no effect; on other machines,
1313 guaranteed core dump. fix: initialized foo. tnx DS.
1314 19960209 qmail 0.72, beta.
1315 19960209 change: qmail-alias now replaces dot, not slash, with colon.
1316 also, qmeopen() makes sure that .qmail file is S_IFREG; I hope
1317 this doesn't cause portability problems.
1318 19960209 change: added success-reporting procedure to INSTALL.
1319 19960208 change: added VERSION.
1320 19960208 change: added qlist2.
1321 19960208 change: revamped qlist interface. tnx RN.
1322 19960208 change: improved an error message in qlist.c.
1323 19960208 change: added qrelay. added relay section to HOWTO. tnx DS.
1324 19960208 cleanup: included substdio.h in qqtalk.h.
1325 19960207 bug: prioq_delmin() wasn't guaranteeing heap structure on the
1326 last element. impact: scheduled passes could have been delayed,
1327 conceivably as long as half an hour. fix: prioq_delmin() now
1328 checks when it can safely move the last element.
1329 19960207 change: added maildirmake.1, maildir2mbox.1.
1330 19960206 change: revised logo paragraph in THOUGHTS.
1331 19960206 change: replaced nowhere.org with nowhere.mil in examples.
1332 nowhere.org is a real domain... [sigh]
1333 19960206 change: added qreceipt.1.
1334 19960206 portability problem: IRIX doesn't have vfork. pointed out by
1335 DS. impact: couldn't compile under IRIX. fix: added fork.h,
1336 tryvfork.c.
1337 19960206 portability problem: IRIX doesn't have ranlib. pointed out by
1338 DS. impact: couldn't compile under IRIX. fix: added IRIX
1339 section in make-cmds.sh.
1340 19960205 cleanup: removed warning from substdio_copy() documentation; in
1341 fact, substdio_copy() can be used safely on a fed substdio.
1342 19960205 change: added qbiff.1.
1343 19960204 change: implemented localnet. removed relevant paragraph from
1344 THOUGHTS. tnx IS.
1345 19960204 change: in qmail-remote.8, explained the dangers of smarthost.
1346 tnx IS.
1347 19960204 change: implemented virtualdomains wildcards. tnx JLH.
1348 19960203 change: qmail-send now handles virtualdomains _after_ locals.
1349 updated INSTALL.qsmhook appropriately.
1350 19960203 change: added note to INSTALL.alias about ~ftp, ~www, ~uucp
1351 being owned by root.
1352 19960130 cleanup: in qlist.c, renamed flagremoved as flagwasthere.
1353 19960130 bug: qmail-send did not pay attention to flagexitasap in
1354 pass_dochan(). impact: qmail-send would happily start new
1355 deliveries even if it wanted to exit. fix: qmail-send now
1356 returns immediately in pass_selprep() and pass_dochan() if
1357 flagexitasap.
1358 19960130 change: in qlist.c and qlist.1, renamed ext as list.
1359 19960130 change: in qlist.c and qlist.1, renamed manager as owner.
1360 19960129 qmail 0.71, beta.
1361 19960129 change: mentioned djb-qmailbeta in README. tnx MWE.
1362 19960129 change: added a note to INSTALL.mbox making clear that
1363 Mailbox is in mbox format. tnx MWE.
1364 19960129 change: qlist now warns you if it didn't see any cmds. tnx RN.
1365 19960129 change: incorporated qlist patch from RN to refuse double subs.
1366 19960129 change: added qlist.1, contributed by RN. mangled it a bit.
1367 19960129 bug: comment was not allowed in ``phrase (comment) <route>'';
1368 pointed out by RN. impact: some correct address lists could be
1369 mis-parsed by qmail-inject or qlist. fix: token.c now allows
1370 TOKEN_COMMENT in the appropriate scan.
1371 19960128 change: added a logo paragraph to THOUGHTS.
1372 19960127 change: implemented rcpthosts.
1373 19960127 change: split up some uses of putflush in qmail-remote,
1374 qmail-smtpd, spawn.c. eliminated NODELAY and corresponding
1375 paragraph in THOUGHTS.
1376 19960127 change: added quote2(). used it in qmail-alias, qmail-send,
1377 qreceipt. now addresses are properly quoted in the From, To,
1378 and internal Return-Path of bounces; the From and To of
1379 receipts; and the Return-Path/RPLINE of delivered messages.
1380 removed relevant paragraph from THOUGHTS.
1381 19960127 change: in RFCLOOPS, documented fact that Delivered-To address
1382 is conventionally not quoted.
1383 19960127 change: knocked default SMTP timeouts down to 20 minutes.
1384 19960127 change: added INSTALL.ids. tnx RN.
1385 19960127 change: in INSTALL, noted that nogroup should already exist.
1386 19960127 bug: pass_selprep checked pqchan[c] even if pass[c].id. impact:
1387 qmail-send wasted CPU time whenever more than one message was
1388 waiting on a blocked channel. fix: pass_selprep now checks
1389 !pass[c].id.
1390 19960127 bug: programs invoked from qmail-alias were immune to SIGPIPE.
1391 impact: a delivery pipeline such as |yes|head -1000 would loop
1392 forever, since yes does not check for write errors. fix: added
1393 signal_uninit(). used it before execvp in qmail-alias. [sigh]
1394 19960127 cleanup: added date822fmt.c. used it in newfield.c, qmail-queue.
1395 19960127 cleanup: added fmt_uint0.c. used it in myctime.c, newfield.c,
1396 qmail-queue.
1397 19960127 cleanup: added dnsdoe.c. used it in dnscname, dnsfq, dnsip,
1398 dnsmxip, dnsptr.
1399 19960127 cleanup: eliminated temp from dnsfq.c.
1400 19960127 bug: gen_allocdefs was making assumptions incompatible with the
1401 alloc_re interface. impact: qmail-send would dump core if you
1402 ran out of memory. fix: changed alloc_re interface.
1403 19960126 portability problem: some versions of Linux don't have
1404 net/route.h. pointed out by RN. impact: couldn't compile under
1405 those versions. fix: ipme.c no longer includes net/route.h;
1406 hopefully this won't cause new portability problems.
1407 19960126 change: added chmod instructions to INSTALL and INSTALL.alias.
1408 tnx RN.
1409 19960126 change: INSTALL now refers to the traditional sendmail spot
1410 (/usr/lib), not the BSD 4.4 spot (/usr/sbin). tnx RN.
1411 19960126 change: make auto-uids.h now creates auto-uids.h.tmp first.
1412 thus, if someone disobeys the installation instructions, and
1413 his make fails to remove targets upon error, he'll still be
1414 okay. tnx RN.
1415 19960126 change: added forgeries.7.
1416 19960125 cleanup: eliminated flagverbose, flagmetoo in sendmail.
1417 19960125 cleanup: added substdio_copy.c. used it at several spots.
1418 19960125 cleanup: added constmap.c. qmail-send now uses constmap for
1419 locals and virtualdomains. this will speed things up: no
1420 problem now to have thousands of virtual domains. removed
1421 relevant paragraph from THOUGHTS.
1422 19960125 change: added linux section in find-systype. this will affect
1423 linux-* systypes. tnx RN for relevant info.
1424 19960124 change: added -od, -oe, -p, -f to sendmail. the need for
1425 these was pointed out by TN.
1426 19960124 bug: qmail-smtpd was reading from descriptor 1. impact: none;
1427 in normal use, both 0 and 1 point to the network. fix: changed
1428 1 to 0.
1429 19960124 bug: qmail-alias treated any .qmail open failure as permanent.
1430 impact: if a .qmail file was temporarily unopenable (e.g.,
1431 because of NFS), it was incorrectly ignored. fix: qmail-alias
1432 now dies QLX_SOFT on any open failure other than ENOENT.
1433 19960124 change: added freebsd section in find-systype, same as bsd.os
1434 section. this will affect freebsd-* systypes.
1435 19960124 cleanup: find-systype now immediately converts sys to lowercase.
1436 19960124 change: qmail-setup now copies man pages into /var/qmail/man;
1437 qmail-check checks /var/qmail/man. using .0 style, which might
1438 cause trouble on various machines, but better than not trying.
1439 19960124 change: in qmail-remote.c, changed perm_control to temp_control
1440 (and D to Z, thanks); thus failure to read control files (e.g.,
1441 because of permissions) is now a temporary error.
1442 19960124 bug: in qmail-remote.c, temp_chdir() used D, not Z. impact: if
1443 chdir() to CONF_HOME failed (e.g., because of NFS), message
1444 would be bounced. fix: changed D to Z.
1445 19960124 change: reorganized README.
1446 19960124 portability problem: Linux has the fifo kernel bug that I had
1447 hoped I'd never run into. impact: messages under Linux (and any
1448 other systems with this bug) were picked up only in sweeps, not
1449 instantly. fix: triggerpull.c now writes a byte (non-blocking)
1450 to the fifo. updated INTERNALS accordingly.
1451 19960124 bug: in qmail-remote.c, if quit() saw a remote write error, it
1452 would call writeerr() even though a message report had already
1453 been produced. impact: the mess report would include an extra
1454 ``ZConnected but communications failed,'' which was confusing
1455 to humans. fix: quit() now simply skips the wait-for-QUIT
1456 smtpcode() upon write error.
1457 19960124 portability problem: Linux does not have SIGSYS or SIGEMT.
1458 impact: couldn't compile under Linux. fix: added appropriate
1459 ifdefs in signal.c.
1460 19960124 qmail 0.70, beta.