nightmaremail

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

CHANGES.md (90766B)


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