Annotation of 43BSDTahoe/usr.lib/sendmail/src/Version.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1983 Eric P. Allman
                      3:  * Copyright (c) 1988 Regents of the University of California.
                      4:  * All rights reserved.
                      5:  *
                      6:  * Redistribution and use in source and binary forms are permitted
                      7:  * provided that the above copyright notice and this paragraph are
                      8:  * duplicated in all such forms and that any documentation,
                      9:  * advertising materials, and other materials related to such
                     10:  * distribution and use acknowledge that the software was developed
                     11:  * by the University of California, Berkeley.  The name of the
                     12:  * University may not be used to endorse or promote products derived
                     13:  * from this software without specific prior written permission.
                     14:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     15:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     16:  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     17:  */
                     18: 
                     19: #ifndef lint
                     20: static char sccsid[] = "@(#)version.c  5.60 (Berkeley) 6/30/88";
                     21: #endif /* not lint */
                     22: 
                     23: char   Version[] = "5.60";
                     24: 
                     25: # ifdef COMMENT
                     26: 
                     27: SCCS/s.version.c:
                     28: 
                     29: D 5.60 88/06/30 15:00:04       bostic  483     482     00011/00009/00012
                     30: install approved copyright notice
                     31: 
                     32: D 5.59 88/03/13 19:53:40       bostic  482     481     00016/00010/00005
                     33: add Berkeley specific header
                     34: 
                     35: D 5.58 87/02/03 20:44:04       eric    481     479     00000/00000/00015
                     36: pass sending hostname correctly back via the $s macro (broken sometime
                     37: earlier); hack around some name server changes
                     38: 
                     39: D 5.57.1.1     86/12/17 16:08:34       eric    480     479     00000/00000/00015
                     40: hack around compiler bug that gets confused on isascii
                     41: 
                     42: D 5.57 86/10/23 10:11:10       eric    479     478     00000/00000/00015
                     43: Fix security bug allowing writing to arbitrary files; from Bart Miller
                     44: at U. Wisconsin.
                     45: 
                     46: D 5.56 86/10/14 18:06:05       eric    478     477     00000/00000/00015
                     47: don't let "locked job" messages remove transcript & lock
                     48: 
                     49: D 5.55 86/10/14 17:21:15       eric    477     476     00000/00000/00015
                     50: make sure that 0, 1, and 2 are open to avoid confusing syslog;
                     51: from Steve Schoch <[email protected]>
                     52: 
                     53: D 5.54 86/07/21 12:21:11       bloom   476     475     00000/00000/00015
                     54: add MX support
                     55: 
                     56: D 5.53 86/06/30 16:20:56       bloom   475     474     00000/00000/00015
                     57: try multiple addresses in SMTP connect
                     58: 
                     59: D 5.52 86/05/06 18:04:16       bloom   474     473     00000/00000/00015
                     60: Fix problem with not closing sockets upon errors when opening connections
                     61: 
                     62: D 5.51 86/05/02 16:28:28       bloom   473     472     00000/00000/00015
                     63: statistics structure moved to its own header file so it may be used by 
                     64: aux/mailstats
                     65: 
                     66: D 5.50 86/04/17 20:18:12       eric    472     471     00000/00000/00015
                     67: don't ignore aliasing during queue runs in conjunction with -bd
                     68: 
                     69: D 5.49 86/04/02 16:02:31       eric    471     470     00000/00000/00015
                     70: don't run around clearing EF_FATALERRS -- this often applies to another
                     71: address.  Drop uid/gid check in sameaddr -- it causes more problems
                     72: than it fixes.
                     73: 
                     74: D 5.48 86/03/08 14:12:07       eric    470     469     00000/00000/00015
                     75: improve debugging in queue routines; don't output error addresses that
                     76: are duplicates or otherwise marked as "don't send"
                     77: 
                     78: D 5.47 86/03/08 09:28:15       eric    469     468     00000/00000/00015
                     79: do dbminit in a reasonable place
                     80: 
                     81: D 5.46 86/03/02 14:07:11       eric    468     467     00000/00000/00015
                     82: always ignore SIGCHLD in openmailer; get SccsId correct in alias.c
                     83: 
                     84: D 5.45 86/01/30 11:02:58       eric    467     466     00000/00000/00015
                     85: fix .forward files that include yourself; this was a bug in sameaddr
                     86: that may have caused some other problems
                     87: 
                     88: D 5.44 86/01/11 00:18:27       eric    466     465     00000/00000/00015
                     89: only check the RHS of aliases during newalias if the "n" option is set;
                     90: this option should probably be set if you are not running the nameserver
                     91: 
                     92: D 5.43 86/01/10 16:34:08       eric    465     464     00000/00000/00015
                     93: adjust WkTimeFact so that -q1h will lower relative priorities of
                     94: jobs over long periods, rather than leave them toward the top of the queue
                     95: 
                     96: D 5.42 86/01/10 15:49:40       eric    464     463     00000/00000/00015
                     97: allow multiple words per line in file classes; require a SCANF compilation
                     98: flag to use sscanf in F specs in order to reduce image size
                     99: 
                    100: D 5.41 86/01/09 15:19:09       eric    463     462     00000/00000/00015
                    101: apparently European timezones were wrong; thanks to Piet Beertema
                    102: <[email protected]> for this one
                    103: 
                    104: D 5.40 86/01/09 14:38:45       eric    462     461     00000/00000/00015
                    105: allow underscores in login names
                    106: 
                    107: D 5.39 86/01/05 18:49:01       eric    461     460     00000/00000/00015
                    108: rewrite reply-to and resent-reply-to; save errorqueueu in qf file;
                    109: some performance hacking; some alias handling cleanup; delete leading
                    110: spaces from SMTP lines
                    111: 
                    112: D 5.38 85/12/17 23:54:45       eric    460     459     00000/00000/00015
                    113: lint
                    114: 
                    115: D 5.37 85/12/17 21:35:28       eric    459     458     00000/00000/00015
                    116: patch to clearenvelope to avoid dereferencing garbage pointers
                    117: 
                    118: D 5.36 85/12/09 10:29:07       miriam  458     457     00000/00000/00015
                    119: Modify maphostname to do a gethostbyaddr if first character in name 
                    120: is a bracket.
                    121: 
                    122: D 5.35 85/12/07 08:17:56       eric    457     456     00000/00000/00015
                    123: several small bugs: don't die if no environment, don't look in
                    124: ESM_DEADLETTER state in savemail; lowercase before getpwnam to
                    125: allow upper case regular names in alias file
                    126: 
                    127: D 5.34 85/11/22 11:38:09       miriam  456     455     00000/00000/00015
                    128: Distinguish between temporary failure types.  Now will print the 
                    129: message "Host Name Lookup Failure" when h_errno contains TRY_AGAIN error value.
                    130: 
                    131: D 5.33 85/11/22 08:27:48       eric    455     454     00000/00000/00015
                    132: give error if alias file cannot be opened; log a message when aliases
                    133: are rebuilt; consider addresses with different q_uid's different so
                    134: that two recipients forwarding to the same program will work
                    135: 
                    136: D 5.32 85/11/21 18:49:02       eric    454     453     00000/00000/00015
                    137: don't duplicate original envelope into error envelope
                    138: 
                    139: D 5.31 85/10/24 10:38:28       eric    453     452     00000/00000/00015
                    140: don't create a queue name in syserr; permit trailing blanks and quoted
                    141: commas in aliases.
                    142: 
                    143: D 5.30 85/10/19 09:55:01       eric    452     451     00000/00000/00015
                    144: strip spaces from ends of alias addresses so that blanks at end of line works
                    145: 
                    146: D 5.29 85/10/13 15:03:36       eric    451     450     00000/00000/00015
                    147: fix botch with reapchild getting queue runs before intended wait
                    148: 
                    149: D 5.28 85/09/30 21:34:39       eric    450     449     00000/00000/00015
                    150: clean up some aspects of error message display
                    151: 
                    152: D 5.27 85/09/30 21:06:04       eric    449     448     00000/00000/00015
                    153: fixes in setproctitle to avoid problems with titles longer than
                    154: argv + env
                    155: 
                    156: D 5.26 85/09/25 11:02:19       eric    448     447     00000/00000/00015
                    157: DO use Ruleset 4 when defining $f -- it's very necessary (fix for <>
                    158: will have to be done in configuration); pretty up mailq -v slightly
                    159: 
                    160: D 5.25 85/09/24 15:49:04       eric    447     446     00000/00000/00015
                    161: clean up queue output somewhat (push null jobs to end); set
                    162: SO_REUSEADDR and SO_KEEPALIVE on daemon sockets in the hopes of making
                    163: dead connections disappear faster
                    164: 
                    165: D 5.24 85/09/24 15:09:56       eric    446     445     00000/00000/00015
                    166: don't step on user environment
                    167: 
                    168: D 5.23 85/09/23 21:19:05       eric    445     444     00000/00000/00015
                    169: deliver directly in SMTP if VERB command has been issued; don't
                    170: externalize name using ruleset 4 when defining $f macro: this turns "<>"
                    171: into "", which confuses local mail
                    172: 
                    173: D 5.22 85/09/21 16:35:33       eric    444     443     00000/00000/00015
                    174: yet more cleanup to the process title code
                    175: 
                    176: D 5.21 85/09/21 16:24:06       eric    443     442     00000/00000/00015
                    177: don't include ctime as part of priority, since the value affects the results of
                    178: shouldqueue; we go back to adding ctime into the workcmpf in queue.c
                    179: 
                    180: D 5.20 85/09/21 15:52:02       eric    442     441     00000/00000/00015
                    181: change sign on WkTimeFact so that is closer to what most people want
                    182: 
                    183: D 5.19 85/09/21 15:01:31       eric    441     440     00000/00000/00015
                    184: fix silly botch in SMTP command decoding
                    185: 
                    186: D 5.18 85/09/21 14:45:53       eric    440     439     00000/00000/00015
                    187: clean up priority handling, making several of the parameters configurable:
                    188: y - WkRecipFact, z - WkClassFact, Z - WkTimeFact, Y - ForkQueueRuns; improve
                    189: process title labelling; finish "errors to postmaster" option
                    190: 
                    191: D 5.17 85/09/21 10:31:27       eric    439     438     00000/00000/00015
                    192: add -v mode to mailq to print priorities as well (this should be extended
                    193: in the future); fix some problems in the savemail state machine.
                    194: 
                    195: D 5.16 85/09/20 09:43:20       eric    438     437     00000/00000/00015
                    196: print cute labels on programs communicating with SMTP
                    197: 
                    198: D 5.15 85/09/19 23:16:24       eric    437     436     00000/00000/00015
                    199: label child processes more effectively
                    200: 
                    201: D 5.14 85/09/19 22:01:02       eric    436     435     00000/00000/00015
                    202: use rename instead of link/unlink
                    203: 
                    204: D 5.13 85/09/19 17:43:16       eric    435     434     00000/00000/00015
                    205: fix botch in clearenvelope
                    206: 
                    207: D 5.12 85/09/19 15:57:48       eric    434     433     00000/00000/00015
                    208: updates to make it possible to run the queue in one process; this
                    209: permits a database of host status to be built
                    210: 
                    211: D 5.11 85/09/19 13:41:13       eric    433     432     00000/00000/00015
                    212: lint
                    213: 
                    214: D 5.10 85/09/19 01:25:45       eric    432     431     00000/00000/00015
                    215: incorporate SMI changes -- still experimental
                    216: 
                    217: D 5.9  85/09/17 21:46:27       eric    431     430     00000/00000/00015
                    218: use SIGCHLD to catch processes as suggested by Serge Granik
                    219: 
                    220: D 5.8  85/09/17 19:24:39       eric    430     429     00000/00000/00015
                    221: facilities in syslog
                    222: 
                    223: D 5.7  85/09/03 20:08:54       eric    429     428     00000/00000/00015
                    224: increase MAXNAME and MAXLINE, as requested by Rick Adams, via
                    225: George Goble, via Kirk Smith, via Miriam Amos (why????)
                    226: 
                    227: D 5.6  85/09/03 19:50:17       eric    428     427     00000/00000/00015
                    228: Wander WIZ from weariful DEBUG to wonderful WIZ woption
                    229: 
                    230: D 5.5  85/06/17 18:53:09       eric    427     426     00000/00000/00015
                    231: From Bill Nowicki: fixes to the statistics
                    232: 
                    233: D 5.4  85/06/16 16:04:51       eric    426     425     00000/00000/00015
                    234: arrange for a useful error message if the mailer fork fails
                    235: 
                    236: D 5.3  85/06/15 18:52:11       eric    425     424     00000/00000/00015
                    237: fix overzealous removal of df file
                    238: 
                    239: D 5.2  85/06/08 10:30:59       eric    424     423     00000/00000/00015
                    240: lint for 4.3 release
                    241: 
                    242: D 5.1  85/06/07 15:19:18       dist    423     422     00013/00003/00002
                    243: Add copyright
                    244: 
                    245: D 4.56 85/06/02 10:54:52       eric    422     421     00000/00000/00005
                    246: plug another security hole with command line arguments
                    247: 
                    248: D 4.55 85/06/01 15:26:40       eric    421     420     00000/00000/00005
                    249: More changes from Bill Nowicki -- file closing and improved logging.
                    250: 
                    251: D 4.54 85/05/24 11:00:43       eric    420     419     00000/00000/00005
                    252: Changes from Bill Nowicki <sun!rose!nowicki> and Jay Lepreau <lepreau@utah-cs>:
                    253: Fix "bad file number" problem; improve error reporting; try to keep messages
                    254: closer to their original order.  Also, drop "safe" mode in readcf since we
                    255: never run setuid when -C is specified.
                    256: 
                    257: D 4.53 85/05/15 20:26:44       eric    419     418     00000/00000/00005
                    258: reenable signals in an event that may be called to run the queue; this
                    259: allows hung connections to time out properly during a queue run.  This
                    260: fix provided by Bill Nowicki.
                    261: 
                    262: D 4.52 85/05/06 20:06:04       eric    418     417     00000/00000/00005
                    263: check syscall return values in a few questions; thanks go to Ian Darwin's
                    264: rudely public ragging on this one.
                    265: 
                    266: D 4.51 85/04/29 22:48:37       eric    417     416     00000/00000/00005
                    267: lock alias file while rebuilding if flock system call available
                    268: 
                    269: D 4.50 85/04/28 10:46:11       eric    416     415     00000/00000/00005
                    270: stop collecting message on ferror(InChannel); changes to compile even
                    271: if DEBUG isn't defined; avoid sending nonstandard 050 messages unless
                    272: requested; recover from trashed DBM files; use recipient rewriting set
                    273: on user part after ruleset 0 completes
                    274: 
                    275: D 4.49 85/04/25 20:06:08       miriam  415     414     00000/00000/00005
                    276: Remove lib/libsys.a references - not used anymore.
                    277: 
                    278: D 4.48 85/04/20 15:14:15       eric    414     413     00000/00000/00005
                    279: don't assume that all apparently local senders have passwd entries
                    280: 
                    281: D 4.47 85/04/04 17:48:45       miriam  413     412     00000/00000/00005
                    282: Change serverity of LOG_ERR to LOG_MAIL so syslog will place in 
                    283: appropriate log file.
                    284: 
                    285: D 4.46 85/02/15 09:28:10       eric    412     411     00000/00000/00005
                    286: fix some bugs with -C flag; one with queuing from Teus
                    287: 
                    288: D 4.45 85/02/14 22:43:42       eric    411     410     00000/00000/00005
                    289: "and" file mode bits with 0777
                    290: 
                    291: D 4.44 84/12/06 10:35:01       eric    410     409     00000/00000/00005
                    292: back out attempt to use flock in the queue -- we don't in gerneral have
                    293: an open file descriptor available.
                    294: 
                    295: D 4.43 84/12/05 23:16:18       eric    409     408     00000/00000/00005
                    296: Try to use flock call (this doesn't work because we don't always have an
                    297: open fd); security and performance fixes from Kirk Smith at Purdue; "a"
                    298: option is now the number of minutes to wait for "@:@" alias; fix bug in
                    299: $[ $] using -t; random cleanup
                    300: 
                    301: D 4.42 84/11/13 12:46:05       eric    408     407     00000/00000/00005
                    302: assorted optimizations (no functional changes)
                    303: 
                    304: D 4.41 84/09/18 19:53:05       eric    407     406     00000/00000/00005
                    305: fix multiline aliases
                    306: 
                    307: D 4.40 84/09/08 17:44:21       eric    406     405     00000/00000/00005
                    308: fix hostname mapping to be repeatable (as required by some .cf files).
                    309: 
                    310: D 4.39 84/08/11 23:19:30       eric    405     404     00000/00000/00005
                    311: Add $[ and $] as RHS operators to look up the contents and pass them
                    312: to maphostname; maphostname currently looks them up in /etc/hosts and
                    313: converts them to canonical form, but could be turned into a general
                    314: name server.....   huzzah!!
                    315: 
                    316: D 4.38 84/08/11 17:56:24       eric    404     403     00000/00000/00005
                    317: changes from Tom Ferrin <ucsfcgl!tef>: don't drop messages on the floor
                    318: if no local mailer available; give real "errno" message in syserr.
                    319: 
                    320: D 4.37 84/08/11 17:50:27       eric    403     402     00000/00000/00005
                    321: Assorted changes from Guy Harris <rlgvax!guy>: mostly lint & USG
                    322: 
                    323: D 4.36 84/08/11 16:57:17       eric    402     401     00000/00000/00005
                    324: don't add ".ARPA" (or whatever net name) to names that already have
                    325: a dot in them; pull NetName out of initialized data space so that
                    326: it can be changed in frozen configuration files
                    327: 
                    328: D 4.35 84/08/11 16:54:59       eric    401     400     00000/00000/00005
                    329: Changes from Greg Couch <ucsfcgl!gregc> for V7 compatibility and
                    330: miscellaneous bug fixes; "clear" => "bzero" and "bmove" => "bcopy"
                    331: throughout for consistency; bzero is now in bcopy.c (these are
                    332: supplied by libc on 4.2bsd)
                    333: 
                    334: D 4.34 84/08/11 14:38:46       eric    400     399     00000/00000/00005
                    335: fixes from Liudvikas Bukys <[email protected]>:
                    336: allow -M flag to be used more than once;
                    337: handle hosts where "gethostname" does not return the canonical name.
                    338: 
                    339: D 4.33 84/08/11 13:23:32       eric    399     398     00000/00000/00005
                    340: add E mailer flag to > escape From lines (for files)
                    341: 
                    342: D 4.32 84/08/05 11:01:18       eric    398     397     00000/00000/00005
                    343: add B option to set blank substitution character
                    344: 
                    345: D 4.31 84/08/05 10:14:14       eric    397     396     00000/00000/00005
                    346: alway reset uid and gid immediately if alternate config file
                    347: 
                    348: D 4.30 84/05/13 15:45:35       eric    396     395     00000/00000/00005
                    349: remove .mailcf hack -- it's been abused.
                    350: 
                    351: D 4.29 84/05/13 14:03:01       eric    395     394     00000/00000/00005
                    352: change "returnto" to "returnq" for PDP-11 compilers
                    353: 
                    354: D 4.28 84/03/17 16:26:58       eric    394     393     00000/00000/00005
                    355: always fold case on host names; fold case on the LHS of aliases
                    356: 
                    357: D 4.27 84/03/11 21:21:31       eric    393     392     00000/00000/00005
                    358: fix argument to gethostname left over from some old interface....
                    359: 
                    360: D 4.26 84/03/11 19:58:20       eric    392     391     00000/00000/00005
                    361: disable UPPER->lower case mapping in RHS's of aliases so that upper
                    362: case letters can be used in file names and as args to programs.
                    363: 
                    364: D 4.25 84/03/11 16:49:25       eric    391     390     00000/00000/00005
                    365: changes from Bill Nowicki <[email protected]> to avoid sending
                    366: errors if a connection is aborted;
                    367: changes from Greg Katz <katz@sri-tsc> to help with PDP-11 versions;
                    368: allow home network name to be changed;
                    369: change macro expansion character from $ to \001 so that $'s can be
                    370: used in headers (.cf unchanged).
                    371: 
                    372: D 4.24 83/12/27 22:52:50       eric    390     389     00000/00000/00005
                    373: don't close files immediately before exec of mailer so that we can log;
                    374: use FIOCLEX instead.  Suggested by Tom Ferrin, UCSF CGL.
                    375: 
                    376: D 4.23 83/12/27 21:21:47       eric    389     388     00000/00000/00005
                    377: fix bug with un-DBM'ed alias files that adds a newline on the end of
                    378: the last entry in the alias; found by John Gilmore, SMI
                    379: 
                    380: D 4.22 83/11/26 18:52:55       eric    388     387     00000/00000/00005
                    381: fix SERIOUS bug allowing anyone to be "wiz" without a password
                    382: if the configuration was frozen
                    383: 
                    384: D 4.21 83/11/13 18:08:19       eric    387     386     00000/00000/00005
                    385: Fixes two nasty problems, both pointed out by Bill Nowicki at Stanford:
                    386: I/O errors on input in collect would cause infinite loops, and a protocol
                    387: error (or other error that would call smtpquit abnormally) would cause
                    388: core dumps
                    389: 
                    390: D 4.20 83/11/10 09:05:46       eric    386     385     00000/00000/00005
                    391: Be able to override the hostname in the configuration file when frozen
                    392: 
                    393: D 4.19 83/10/29 16:46:12       eric    385     384     00000/00000/00005
                    394: declare getpwnam in recipient.c for earlier systems
                    395: 
                    396: D 4.18 83/10/29 12:01:44       eric    384     383     00000/00000/00005
                    397: add newline to "deferred" message in usersmtp.c
                    398: 
                    399: D 4.17 83/10/23 17:16:56       eric    383     382     00000/00000/00005
                    400: handle dollar signs in headers properly
                    401: 
                    402: D 4.16 83/10/16 16:08:08       eric    382     381     00000/00000/00005
                    403: Postpone opening the alias DBM file until after the fork in srvrsmtp so
                    404: that the alias database is as current as possible; thanks to dagobah!efo
                    405: (Eben Ostby) for this one.
                    406: 
                    407: D 4.15 83/10/16 15:26:12       eric    381     380     00000/00000/00005
                    408: reset errno in parseaddr so that syserr gives a permanent error code and
                    409: no extraneous information about non-errors
                    410: 
                    411: D 4.14 83/10/02 15:31:56       eric    380     379     00000/00000/00005
                    412: Use old environment after the thaw; credit rhc for this.
                    413: 
                    414: D 4.13 83/10/01 16:57:57       eric    379     378     00000/00000/00005
                    415: clean up error handling in general; make sure that something gets logged
                    416: in the transcript if the connection cannot be established; clean up Teus
                    417: Hagen's mod to arpadate.c to match the sendmail coding style.
                    418: 
                    419: D 4.12 83/09/07 09:45:41       eric    378     377     00000/00000/00005
                    420: Increase timeout for greeting message to five minutes; remember to close
                    421: the connection properly if we get a failure during connection establishment.
                    422: 
                    423: D 4.11 83/09/05 15:02:48       eric    377     376     00000/00000/00005
                    424: Fix security hole caused by being able to freeze the configuration
                    425: without owning the .fc file.
                    426: 
                    427: D 4.10 83/09/05 14:33:54       eric    376     375     00000/00000/00005
                    428: Cut down the amount of bulk that is sent in SMTP error messages, by
                    429: trying to log only real errors in the transcript.  -v mode is unchanged.
                    430: 
                    431: D 4.9  83/08/31 17:42:50       eric    375     374     00000/00000/00005
                    432: fix problem with timeouts caused by change in EINTR semantics in 4.2bsd;
                    433: add a two minute timeout on the greeting message in user smtp to detect
                    434: hung connections
                    435: 
                    436: D 4.8  83/08/28 15:38:15       eric    374     373     00000/00000/00005
                    437: set FIOCLEX on /dev/kmem file when getting load average
                    438: 
                    439: D 4.7  83/08/28 14:45:35       eric    373     372     00000/00000/00005
                    440: Refuse to talk to yourself (i.e., reject HELO packets with your own name).
                    441: Add two thresholds -- option 'x' is the load average at which messages are
                    442: queued rather than delivered (default 12); option 'X' is the load average
                    443: at which incoming TCP connections are refused (default 25).
                    444: 
                    445: D 4.6  83/08/21 15:40:13       eric    372     371     00000/00000/00005
                    446: Drop "Sender:" hack, since it doesn't work properly when relaying messages.
                    447: 
                    448: D 4.5  83/08/21 15:15:09       eric    371     370     00000/00000/00005
                    449: Insert a Sender: line if a From: line is specified and is different than
                    450: what we would insert; don't send back a separate error message if we have
                    451: diagnosed an error in a RCPT command; fix a *0 problem in some debug code.
                    452: 
                    453: D 4.4  83/08/06 10:37:57       eric    370     369     00000/00000/00005
                    454: Clear errno before trying connect in an attempt to track down EPERM
                    455: problems.
                    456: 
                    457: D 4.3  83/07/31 10:46:22       eric    369     368     00000/00000/00005
                    458: Add EX_NOPERM to sysexits.h for kre
                    459: 
                    460: D 4.2  83/07/27 22:56:44       eric    368     367     00000/00000/00005
                    461: Don't uppercase hostname in myhostname so that it can be used as a
                    462: UUCP name.
                    463: 
                    464: D 4.1  83/07/25 19:46:27       eric    367     366     00000/00000/00005
                    465: 4.2 release version
                    466: 
                    467: D 3.347        83/07/13 10:38:17       eric    366     365     00000/00000/00005
                    468: Delete "load limiting" for SMTP connections (a bad ethernet board can
                    469: hang up all incoming mail); use sfgets in collect (same reason); check
                    470: for I/O error in collect (from Bill Nowicki); switch date format to
                    471: RFC822 style.
                    472: 
                    473: D 3.346        83/06/14 11:05:18       eric    365     364     00000/00000/00005
                    474: log the message-id only if non-null
                    475: 
                    476: D 3.345        83/06/11 20:59:30       eric    364     363     00000/00000/00005
                    477: %d => %ld in mailq for PDP-11's
                    478: 
                    479: D 3.344        83/06/11 19:28:58       eric    363     362     00000/00000/00005
                    480: MRs:   045
                    481: MRs:   240
                    482: don't rearrange input header lines; force Received: lines to be at the
                    483: beginning by always adding new header fields at the end of the header.
                    484: 
                    485: D 3.343        83/05/21 11:01:51       eric    362     361     00000/00000/00005
                    486: Miscellaneous changes for PDP-11's.
                    487: Always send to a login name before a full name.
                    488: 
                    489: D 3.342        83/05/20 11:50:16       eric    361     360     00000/00000/00005
                    490: MRs:   238
                    491: MRs:   239
                    492: Don't stack processes when VRFY fails.
                    493: Give an error message on multiple RCPT commands with a bad address.
                    494: 
                    495: D 3.341        83/05/18 11:57:09       eric    360     359     00000/00000/00005
                    496: Change WKTIMEFACT to be negative to force failing jobs to the end of the
                    497: queue rather than to the beginning, giving better overall performance --
                    498: as noted by Jay Lepreau.  Also, clean up the format of the mailq output.
                    499: 
                    500: D 3.340        83/05/07 11:28:37       eric    359     358     00000/00000/00005
                    501: MRs:   237
                    502: Pass the size of the buffer to myhostname.
                    503: 
                    504: D 3.339        83/05/04 11:29:53       eric    358     357     00000/00000/00005
                    505: MRs:   235
                    506: fix botch in 3.338 -- arguments reversed
                    507: 
                    508: D 3.338        83/05/04 11:16:29       eric    357     356     00000/00000/00005
                    509: MRs:   235
                    510: Don't send domain-based UUCP addresses to UGLYUUCP hosts
                    511: 
                    512: D 3.337        83/05/01 14:27:55       eric    356     355     00000/00000/00005
                    513: MRs:   234
                    514: avoid core dumps on messages with very long header fields
                    515: 
                    516: D 3.336        83/04/30 15:14:51       eric    355     354     00000/00000/00005
                    517: lint
                    518: 
                    519: D 3.335        83/04/23 12:54:57       eric    354     353     00000/00000/00005
                    520: MRs:   230
                    521: Don't put Resent-*: lines in queue file to prevent outputing them
                    522: inappropriately in the sent message.
                    523: 
                    524: D 3.334        83/04/19 19:20:44       eric    353     352     00000/00000/00005
                    525: MRs:   228
                    526: Fix bug causing convtime to loop forever on "w" (week) specification.
                    527: 
                    528: D 3.333        83/04/17 17:19:04       eric    352     351     00000/00000/00005
                    529: MRs:   199
                    530: MRs:   218
                    531: MRs:   221
                    532: MRs:   224
                    533: put true current time on SMTP greeting message; drop >From hack (this belongs
                    534: in the mailer if needed); fix bogus errno problems (clear errno in many
                    535: places); fix *(0) problems
                    536: 
                    537: D 3.332        83/03/26 14:26:43       eric    351     350     00000/00000/00005
                    538: MRs:   213
                    539: MRs:   214
                    540: MRs:   215
                    541: increase buffer size in smtpmessage to avoid overflows; rewrite again with
                    542: ruleset three after appending from domain so that we can add the bracket
                    543: punctuation; changes from MRH for USG UNIX 5.0
                    544: 
                    545: D 3.331        83/03/19 14:25:33       eric    350     349     00000/00000/00005
                    546: MRs:   211
                    547: Don't have mail from su'ed people come from "daemon"
                    548: 
                    549: D 3.330        83/03/19 13:14:27       eric    349     348     00000/00000/00005
                    550: MRs:   147
                    551: Fix botch of putting incorrect full names on some addresses (usually
                    552: UNIX-to-UNIX Copy)
                    553: 
                    554: D 3.329        83/03/12 18:05:51       eric    348     347     00000/00000/00005
                    555: MRs:   196
                    556: take ECONNRESET (Connection reset by peer) as a temporary error during
                    557: connection initiation.
                    558: 
                    559: D 3.328        83/03/12 17:41:55       eric    347     346     00000/00000/00005
                    560: MRs:   208
                    561: Check for I/O error on close of temp file -- i.e., last buffer flush
                    562: 
                    563: D 3.327        83/03/12 15:40:05       eric    346     345     00000/00000/00005
                    564: MRs:   207
                    565: Don't artifically add a "from: $q" when running the queue -- this seems
                    566: to cause the from line in the qf file to be ignored.
                    567: 
                    568: D 3.326        83/03/10 00:48:02       eric    345     344     00000/00000/00005
                    569: MRs:   206
                    570: Delete colon on front of aliases
                    571: 
                    572: D 3.325        83/03/08 19:22:48       eric    344     343     00000/00000/00005
                    573: MRs:   205
                    574: Pass the delimiter character to parseaddr so that we can correctly
                    575: decide between comma and space
                    576: 
                    577: D 3.324        83/03/07 09:55:13       eric    343     342     00000/00000/00005
                    578: MRs:   203
                    579: Don't pass EX_TEMPFAIL code out (since we have already taken responsibility
                    580: for delivering the message anyway).
                    581: 
                    582: D 3.323        83/03/07 09:25:01       eric    342     341     00000/00000/00005
                    583: MRs:   202
                    584: Handle OLDSTYLE addresses properly with the -t flag; notice that tabs also
                    585: delimit addresses (as well as spaces)
                    586: 
                    587: D 3.322        83/03/06 16:30:29       eric    341     340     00000/00000/00005
                    588: MRs:   201
                    589: Handle messages with "Resent-xxx:" header lines properly (basically mark
                    590: the message as being resent); ignore incoming From: lines if their text
                    591: exactly matches our machine-readable address exactly -- this causes the
                    592: full name to be added when called from (e.g.) MH.  Both of these mode are
                    593: to improve interaction with MH.
                    594: 
                    595: D 3.321        83/03/05 17:39:11       eric    340     339     00000/00000/00005
                    596: MRs:   200
                    597: Ignore delimiters (e.g., commas) inside quotes
                    598: 
                    599: D 3.320        83/02/26 15:32:31       eric    339     338     00000/00000/00005
                    600: MRs:   193
                    601: Don't log message-id mapping and from person in a queue run
                    602: 
                    603: D 3.319        83/02/26 15:06:05       eric    338     337     00000/00000/00005
                    604: MRs:   162
                    605: map host name for $w macro to upper case -- this is more conventional
                    606: 
                    607: D 3.318        83/02/26 11:51:43       eric    337     336     00000/00000/00005
                    608: MRs:   193
                    609: log queueid <=> message-id correspondence
                    610: 
                    611: D 3.317        83/02/25 21:20:20       eric    336     335     00000/00000/00005
                    612: MRs:   181
                    613: More attempts at insuring that everything goes through ruleset 4
                    614: 
                    615: D 3.316        83/02/24 20:03:04       eric    335     334     00000/00000/00005
                    616: MRs:   181
                    617: arrange to cleanup addresses using ruleset 4 before storing in ADDR struct
                    618: 
                    619: D 3.315        83/02/24 18:55:32       eric    334     333     00000/00000/00005
                    620: MRs:   162
                    621: MRs:   192
                    622: Fix bug in $w and $=w setup; truncate output to seven bits if the "limits"
                    623: flag is set to insure that nothing can be sent that looks like TELNET
                    624: protocol
                    625: 
                    626: D 3.314        83/02/20 12:29:15       eric    333     332     00000/00000/00005
                    627: MRs:   190
                    628: Avoid loops in the auto-closedown code
                    629: 
                    630: D 3.313        83/02/19 14:42:12       eric    332     331     00000/00000/00005
                    631: MRs:   188
                    632: Avoid core dumps on very long addresses in headers.
                    633: 
                    634: D 3.312        83/02/18 13:11:57       eric    331     330     00000/00000/00005
                    635: MRs:   183
                    636: Improve host verification -- put something in even if no HELO command given
                    637: 
                    638: D 3.311        83/02/18 12:44:13       eric    330     329     00000/00000/00005
                    639: MRs:   183
                    640: MRs:   185
                    641: MRs:   187
                    642: Add HELO hostname verification; give an error if a message terminates with
                    643: EOF rather than dot in SMTP mode; put in a catch for "Not owner" error on
                    644: connect -- see if we can find anything funny.
                    645: 
                    646: D 3.310        83/02/13 16:23:03       eric    329     328     00000/00000/00005
                    647: MRs:   182
                    648: fix clrbitmap to really clear the entire bitmap
                    649: 
                    650: D 3.309        83/02/10 10:00:49       eric    328     327     00000/00000/00005
                    651: MRs:   176
                    652: avoid core dump on return receipt processing; clean up return receipt
                    653: message.
                    654: 
                    655: D 3.308        83/02/08 10:50:24       eric    327     326     00000/00000/00005
                    656: MRs:   167
                    657: MRs:   172
                    658: MRs:   173
                    659: MRs:   174
                    660: clean up problems when QUEUE compile flag not defined; clean up hostname
                    661: code to run on non-4.1c systems; fix use of -oeq (quiet on errors) flag.
                    662: 
                    663: D 3.307        83/02/03 10:46:02       eric    326     325     00001/00001/00004
                    664: MRs:   160
                    665: Change version stamp to have no date (so that it looks nice as $v/$V)
                    666: 
                    667: D 3.306        83/02/03 10:29:15       eric    325     324     00000/00000/00005
                    668: MRs:   160
                    669: $e macro is now SMTP entry message (so that configuration version can
                    670: be included).
                    671: 
                    672: D 3.305        83/02/03 07:54:10       eric    324     323     00000/00000/00005
                    673: MRs:   168
                    674: Make mailer size limits a per-mailer parameter (M field in the mailer
                    675: descriptor)
                    676: 
                    677: D 3.304        83/02/02 12:53:10       eric    323     322     00000/00000/00005
                    678: MRs:   165
                    679: implement classes and mailer flags as a bit map; define new class 'w'
                    680: as the set of all hosts we are known by
                    681: 
                    682: D 3.303        83/02/01 20:47:34       eric    322     321     00000/00000/00005
                    683: MRs:   166
                    684: don't call printqueue() if queueing is turned off
                    685: 
                    686: D 3.302        83/01/18 20:38:09       eric    321     320     00000/00000/00005
                    687: pause() after reply error if 18.100 set -- so that Sam can try to track
                    688: down the state of the connection in the CMU-CS-A problem.
                    689: 
                    690: D 3.301        83/01/17 21:41:42       eric    320     319     00000/00000/00005
                    691: MRs:   158
                    692: Set the $w macro to the hostname if at all possible to allow generic
                    693: configuration tables.
                    694: 
                    695: D 3.300        83/01/17 12:31:10       eric    319     318     00000/00000/00005
                    696: MRs:   155
                    697: fix bug that caused "\r\n" string in TCP mailer definition to turn
                    698: into something else -- causing all TCP connections to hang.
                    699: 
                    700: D 3.299        83/01/17 09:32:18       eric    318     317     00000/00000/00005
                    701: MRs:   154
                    702: define a newline in "nullmailer" so that queue files get written with
                    703: newlines between the "H" lines.
                    704: 
                    705: D 3.298        83/01/16 22:08:47       eric    317     316     00000/00000/00005
                    706: put in socket debugging on a debug flag to help Sam find the CMU-CS-A
                    707: problem -- this probably won't work with early 4.1c systems.
                    708: 
                    709: D 3.297        83/01/16 17:24:29       eric    316     315     00000/00000/00005
                    710: MRs:   153
                    711: make the maximum number of simultaneous SMTP connections an option
                    712: 
                    713: D 3.296        83/01/16 13:14:04       eric    315     314     00000/00000/00005
                    714: MRs:   152
                    715: Change mailer spec to have labelled fields for future expansion.
                    716: **** This delta invalidates previous configuration files ****
                    717: 
                    718: D 3.295        83/01/15 17:40:49       eric    314     313     00000/00000/00005
                    719: MRs:   149
                    720: be sure everything gets appropriately externalized; canonname goes away,
                    721: since everything is now done by remotename
                    722: 
                    723: D 3.294        83/01/12 08:56:51       eric    313     312     00000/00000/00005
                    724: MRs:   144
                    725: fix date format to be truly RFC822
                    726: 
                    727: D 3.293        83/01/09 15:43:11       eric    312     311     00000/00000/00005
                    728: MRs:   139
                    729: fix CRLF problem when sending SMTP commands; make newstr() and crlf()
                    730: into macros
                    731: 
                    732: D 3.292        83/01/08 19:54:37       eric    311     310     00000/00000/00005
                    733: MRs:   143
                    734: release daemon resources when running the queue
                    735: 
                    736: D 3.291        83/01/08 13:49:08       eric    310     309     00000/00000/00005
                    737: MRs:   142
                    738: be sure to open a new transcript on every queue run; when returning
                    739: an SMTP transcript, only send the last half (i.e., that part which
                    740: describes the sending half).
                    741: 
                    742: D 3.290        83/01/06 18:21:54       eric    309     308     00000/00000/00005
                    743: MRs:   141
                    744: allow user-setable error codes in "error" mailer
                    745: 
                    746: D 3.289        83/01/06 18:09:01       eric    308     307     00000/00000/00005
                    747: MRs:   140
                    748: fix a botch in argument processing such that it used the last flag as
                    749: a recipient if there were no other recipients (e.g., with "-t")
                    750: 
                    751: D 3.288        83/01/06 12:05:54       eric    307     306     00000/00000/00005
                    752: MRs:   132
                    753: fix (one more time!) long line wrapping.....
                    754: 
                    755: D 3.287        83/01/06 10:46:17       eric    306     305     00000/00000/00005
                    756: MRs:   139
                    757: split up FULLSMTP flag -- now have "X" (M_XDOT, use hidden dot algorithm),
                    758: "p" (M_FROMPATH, use reverse-path in MAIL FROM:<> command), and "L"
                    759: (M_LIMITS, enforce SMTP line limits).  I would like to change the format
                    760: of the mail defn one more time to make named fields so that it would
                    761: be more extensible.
                    762: 
                    763: D 3.286        83/01/05 20:30:10       eric    305     304     00000/00000/00005
                    764: MRs:   132
                    765: fix folded line output
                    766: 
                    767: D 3.285        83/01/05 17:57:11       eric    304     303     00000/00000/00005
                    768: MRs:   138
                    769: curiouser and curiouser.....  a read error on the reply from a QUIT will
                    770: cause another QUIT command, and thus an fclose(NULL).  Some sites seem
                    771: to be sending a 421 Shutting down and then closing without waiting for
                    772: the QUIT, so this happens....
                    773: 
                    774: D 3.284        83/01/05 10:19:04       eric    303     302     00000/00000/00005
                    775: MRs:   138
                    776: improve error recovery for bizarre SMTP cases; unfortunately CMU has
                    777: decided to start working again, so the strangest parts are untested.
                    778: 
                    779: D 3.283        83/01/04 19:53:55       eric    302     301     00000/00000/00005
                    780: MRs:   137
                    781: externalize $g macro using ruleset 4 also
                    782: 
                    783: D 3.282        83/01/04 18:52:08       eric    301     300     00000/00000/00005
                    784: MRs:   136
                    785: Don't try to drop our controlling TTY except when we are starting up a
                    786: daemon; this can cause UUCP jobs to hang waiting for carrier on a dialin
                    787: line (completely contrary to the intent).  Many thanks to Keith Sklower
                    788: for pointing this one out.  However, that damned parameter to disconnect()
                    789: has reappeared!
                    790: 
                    791: D 3.281        83/01/04 17:45:25       eric    300     299     00000/00000/00005
                    792: MRs:   135
                    793: Ignore SIGPIPE early (in main rather than in deliver) so that rude hosts
                    794: that close the connection early don't cause us to die -- in particular,
                    795: CMU-CS-A (nee CMU-10A) was doing this after the DATA command; the problem
                    796: went away quite mysteriously, so I have no idea why it happened
                    797: 
                    798: D 3.280        83/01/04 13:10:35       eric    299     298     00000/00000/00005
                    799: MRs:   129
                    800: MRs:   134
                    801: take EHOSTDOWN as a temporary failure; change the format of "deferred"
                    802: message to be consistent with other messages.
                    803: 
                    804: D 3.279        83/01/04 10:58:55       eric    298     297     00000/00000/00005
                    805: MRs:   133
                    806: fix botch that causes sendmail to core dump when there are large
                    807: numbers of requests
                    808: 
                    809: D 3.278        83/01/04 10:04:41       eric    297     296     00000/00000/00005
                    810: MRs:   132
                    811: Detect an internal error that seems to be occuring
                    812: 
                    813: D 3.277        83/01/03 18:01:33       eric    296     295     00000/00000/00005
                    814: MRs:   129
                    815: give more useful error messages (including the errno that caused
                    816: a temporary failure); reflect these messages out to mailq
                    817: 
                    818: D 3.276        83/01/03 14:02:28       eric    295     294     00000/00000/00005
                    819: MRs:   137
                    820: have canonname pass the address through ruleset four also
                    821: 
                    822: D 3.275        83/01/03 13:44:39       eric    294     293     00000/00000/00005
                    823: MRs:   131
                    824: take ENETUNREACH (Network unreachable) as a transient error -- this
                    825: probably isn't usually right, but it seem safer in the long run....
                    826: 
                    827: D 3.274        83/01/03 13:19:37       eric    293     292     00000/00000/00005
                    828: MRs:   129
                    829: print "request" instead of "requests" if there is only one request
                    830: 
                    831: D 3.273        83/01/03 13:03:01       eric    292     291     00000/00000/00005
                    832: MRs:   130
                    833: fix bug in commaize so that it won't core dump on every message (sigh);
                    834: process timeouts like normal errors so that they will get delivered to
                    835: the correct address (i.e., the Errors-To: address).
                    836: 
                    837: D 3.272        83/01/03 11:28:04       eric    291     290     00000/00000/00005
                    838: MRs:   129
                    839: fix botch in reading the queue that caused it to throw away the last
                    840: entry it read -- this was particulary obvious with only one entry in
                    841: the queue.
                    842: 
                    843: D 3.271        83/01/02 15:33:36       eric    290     289     00000/00000/00005
                    844: MRs:   124
                    845: Take errno 65, "Host is unreachable", to be a recoverable error
                    846: 
                    847: D 3.270        83/01/02 14:27:32       eric    289     288     00000/00000/00005
                    848: MRs:   129
                    849: clean up output of mailq mode
                    850: 
                    851: D 3.269        83/01/01 21:25:35       eric    288     287     00000/00000/00005
                    852: MRs:   123
                    853: Put CRLF on all lines in user SMTP.  Pass this info down to
                    854: innumerable routines.
                    855: 
                    856: D 3.268        83/01/01 18:14:56       eric    287     286     00000/00000/00005
                    857: MRs:   122
                    858: Use a more resilient algorithm to handle the special case of an SMTP
                    859: connection that is going down spontaneously (with a 421 reply code)
                    860: 
                    861: D 3.267        83/01/01 16:02:43       eric    286     285     00000/00000/00005
                    862: MRs:   128
                    863: tag syserr's specially in the log so they can be grep'ed out easily
                    864: 
                    865: D 3.266        82/12/30 17:30:57       eric    285     284     00000/00000/00005
                    866: MRs:   114
                    867: don't bother timing out on *.cf and qf* file reads -- they are
                    868: really very vanilla
                    869: 
                    870: D 3.265        82/12/30 16:57:13       eric    284     283     00000/00000/00005
                    871: MRs:   113
                    872: close files 3 through 20 before startup to insure sufficient resources
                    873: 
                    874: D 3.264        82/12/29 17:39:27       eric    283     282     00000/00000/00005
                    875: MRs:   112
                    876: don't htons(sp->s_port) in makeconnection
                    877: 
                    878: D 3.263        82/12/24 08:14:55       eric    282     281     00000/00000/00005
                    879: MRs:   108
                    880: Change parse to parseaddr for BB&N TCP/IP implementation; clean up
                    881: comments in daemon.c to simplify the poor alternate protocol type.
                    882: 
                    883: D 3.262        82/12/14 19:23:23       eric    281     280     00000/00000/00005
                    884: MRs:   106
                    885: fix freeze mode to do something more interesting that refreezing (over
                    886: and over and over and .......)
                    887: 
                    888: D 3.261        82/12/14 16:57:16       eric    280     279     00000/00000/00005
                    889: MRs:   105
                    890: Add "print mail queue" mode (-bp flag or call as "mailq")
                    891: 
                    892: D 3.260        82/12/13 18:25:22       eric    279     278     00000/00000/00005
                    893: MRs:   085
                    894: The routine "sendto" is now a system call (yeuch!); change our sendto
                    895: to "sendtolist"
                    896: 
                    897: D 3.259        82/12/13 17:47:27       eric    278     277     00000/00000/00005
                    898: MRs:   085
                    899: NEW-IPC: convert to 4.1c
                    900: 
                    901: D 3.258        82/12/09 19:18:32       eric    277     276     00000/00000/00005
                    902: MRs:   036
                    903: MRs:   053
                    904: MRs:   064
                    905: Fix a bug triggered when we add the sender's "@domain" to an address
                    906: in the message body that is missing a domain -- we forgot to null
                    907: terminate the list.
                    908: 
                    909: D 3.257        82/12/09 11:19:09       eric    276     275     00000/00000/00005
                    910: MRs:   081
                    911: MRs:   095
                    912: MRs:   103
                    913: log read timeouts as syserrs; be able to match the inverse of a class
                    914: using the $~x syntax; don't add a full name during network forward operations
                    915: 
                    916: D 3.256        82/12/05 13:46:29       eric    275     274     00000/00000/00005
                    917: MRs:   092
                    918: Clear the envelope in the child in server SMTP to insure that our oh so
                    919: helpful parent doesn't delete our transcript; move the transcript and
                    920: temporary file pointers into the envelope; pass the envelope to other
                    921: routines in the holy war against global variables; split off envelope
                    922: routines from main.c to envelope.c
                    923: 
                    924: D 3.255        82/11/28 16:00:50       eric    274     273     00000/00000/00005
                    925: implement SMTP auto-shutdown on 421 codes; clean up some error processing
                    926: items, particularly in SMTP; don't reinstantiate error message bodies after
                    927: queueing; other minor changes.  This is all cleanup from 3.253.
                    928: 
                    929: D 3.254        82/11/28 10:22:20       eric    273     272     00000/00000/00005
                    930: fix a number of problems left over from yesterday's delta.  The big
                    931: triumph is being able to delete the parameter from disconnect().
                    932: 
                    933: D 3.253        82/11/28 00:22:21       eric    272     271     00000/00000/00005
                    934: Many changes resulting from a complete code readthrough.  Most of these
                    935: fix minor bugs or change the internal structure for clarity, etc.  There
                    936: should be almost no externally visible changes (other than some cleaner
                    937: error message printouts and the like).
                    938: 
                    939: D 3.252        82/11/24 18:44:28       eric    271     270     00000/00000/00005
                    940: lint it
                    941: 
                    942: D 3.251        82/11/24 17:15:30       eric    270     269     00000/00000/00005
                    943: MRs:   026
                    944: run SMTP jobs in a subprocess so that multiple jobs will work.  This
                    945: delta also changes the envelope data structure so that flags are in
                    946: a bit map, and adjusts some of the semantics.  The transcript is now
                    947: local to an envelope.  A bunch of old code is deleted.  A serious bug
                    948: was fixed in the "run in background" code.  Etc., etc.
                    949: 
                    950: D 3.250        82/11/21 17:19:05       eric    269     268     00000/00000/00005
                    951: MRs:   026
                    952: preliminary hacks for multiple SMTP transactions per connection: make
                    953: assignment of multiple queue id's more efficient, make prefixes two
                    954: characters (e.g., qfAA99999), pass the file name to freeze and thaw,
                    955: add a mailer flag saying we are talking to one of our own kind.
                    956: 
                    957: D 3.249        82/11/20 12:43:29       eric    268     267     00000/00000/00005
                    958: MRs:   083
                    959: Accept user@[net.host.logical.imp] syntax
                    960: 
                    961: D 3.248        82/11/18 21:33:38       eric    267     266     00000/00000/00005
                    962: MRs:   080
                    963: Correctly run "sendmail -q" (had a reversed condition on QueueIntvl)
                    964: 
                    965: D 3.247        82/11/18 17:54:23       eric    266     265     00000/00000/00005
                    966: MRs:   079
                    967: Fix bug causing loops in sendto if there are scanner errors in addresses
                    968: 
                    969: D 3.246        82/11/18 08:56:27       eric    265     264     00000/00000/00005
                    970: MRs:   060
                    971: MRs:   073
                    972: disconnect input, output, signals, etc. when running in background
                    973: 
                    974: D 3.245        82/11/17 09:36:47       eric    264     263     00000/00000/00005
                    975: MRs:   060
                    976: split operation mode ("-bx" flag) and delivery mode ("d" option)
                    977: so that operation mode can apply to SMTP/daemon connections also.
                    978: 
                    979: D 3.244        82/11/14 15:34:59       eric    263     262     00000/00000/00005
                    980: MRs:   075
                    981: Explicitly inherit e_oldstyle from BlankEnvelope to MainEnvelope
                    982: 
                    983: D 3.243        82/11/14 15:14:00       eric    262     261     00000/00000/00005
                    984: MRs:   074
                    985: fix quote processing on program mailers
                    986: 
                    987: D 3.242        82/11/14 12:26:17       eric    261     260     00000/00000/00005
                    988: MRs:   072
                    989: Don't give an error message on unknown options
                    990: 
                    991: D 3.241        82/11/13 18:07:59       eric    260     259     00000/00000/00005
                    992: MRs:   021
                    993: MRs:   066
                    994: MRs:   069
                    995: MRs:   069
                    996: MRs:   070
                    997: MRs:   071
                    998: Clean up argument structure (-I=>-bi, -Z=>-bz).  Add -bp stub to someday
                    999: print queue.  Move compile conf into conf.h (still some stuff in the
                   1000: Makefile).  Assume -bp if called as "mailq" and -bi if called as
                   1001: "newaliases".  Drop old directory hack -- send out compat code instead.
                   1002: Don't rebuild the alias file automatically unless the D option is set.
                   1003: Clean up compilation flags.
                   1004: 
                   1005: D 3.240        82/11/07 16:14:44       eric    259     258     00000/00000/00005
                   1006: MRs:   041
                   1007: make all mailer output go to the transcript if running server smtp; this
                   1008: has the effect of making some significant changes in the output structure
                   1009: to handle such things as -em and -as together
                   1010: 
                   1011: D 3.239        82/11/07 15:31:50       eric    258     257     00000/00000/00005
                   1012: MRs:   063
                   1013: don't flag errors in setting dangerous options when -C is used
                   1014: 
                   1015: D 3.238        82/11/05 13:12:52       eric    257     256     00000/00000/00005
                   1016: MRs:   062
                   1017: arrange to freeze the configuration file for quick startup -- this
                   1018: technique requires reprocessing the argv so that flag settings don't
                   1019: get lost, and is really rather of a hack.
                   1020: 
                   1021: D 3.237        82/11/04 15:22:16       eric    256     255     00000/00000/00005
                   1022: MRs:   019
                   1023: don't unlink qf & df files on ^C
                   1024: 
                   1025: D 3.236        82/11/04 13:27:28       eric    255     254     00000/00000/00005
                   1026: MRs:   037
                   1027: put header conditionals into the .cf file
                   1028: 
                   1029: D 3.235        82/11/03 11:18:06       eric    254     253     00000/00000/00005
                   1030: MRs:   059
                   1031: don't strip quotes off of addresses during prescan
                   1032: 
                   1033: D 3.234        82/11/03 10:34:13       eric    253     252     00000/00000/00005
                   1034: MRs:   058
                   1035: Put the temporary file mode on the F option
                   1036: 
                   1037: D 3.233        82/11/03 09:49:15       eric    252     251     00000/00000/00005
                   1038: MRs:   049
                   1039: Arrange to strip quote bits in message header; move SPACESUB into
                   1040: conf.c; change SpaceSub to unquoted dot
                   1041: 
                   1042: D 3.232        82/11/03 09:00:33       eric    251     250     00000/00000/00005
                   1043: MRs:   056
                   1044: Arrange for queue.c to aapt to systems w/o new directory code
                   1045: 
                   1046: D 3.231        82/10/31 13:47:06       eric    250     249     00000/00000/00005
                   1047: MRs:   032
                   1048: MRs:   051
                   1049: Call ruleset 4 after doing per-mailer translation to convert from
                   1050: internal to external form.
                   1051: 
                   1052: D 3.230        82/10/28 17:41:15       eric    249     248     00000/00000/00005
                   1053: MRs:   039
                   1054: MRs:   027
                   1055: Put the "@:@" trick on the "a" option.  Also, move TrustedUsers into
                   1056: sendmail.h (it should have gone here in the first place!)
                   1057: 
                   1058: D 3.229        82/10/27 20:43:35       eric    248     247     00000/00000/00005
                   1059: MRs:   044
                   1060: strip out bcc: and resent-bcc: always
                   1061: 
                   1062: D 3.228        82/10/25 08:30:12       eric    247     246     00000/00000/00005
                   1063: MRs:   040
                   1064: Don't send closing protocol to SMTP if you haven't opened the
                   1065: connection; this happens if checkcompat fails on the only recipient.
                   1066: 
                   1067: D 3.227        82/10/22 09:02:44       eric    246     245     00000/00000/00005
                   1068: MRs:   023
                   1069: part of a heuristic hill climbing algorithm to minimize the number of
                   1070: IPC bugs that come crawling over me.
                   1071: 
                   1072: D 3.226        82/10/16 15:24:52       eric    245     244     00000/00000/00005
                   1073: MRs:   027
                   1074: Put list of login names able to use -f in the .cf file.
                   1075: 
                   1076: D 3.225        82/10/16 14:43:47       eric    244     243     00000/00000/00005
                   1077: MRs:   007
                   1078: Arrange for a wizards password (the W option).  The SMTP KILL command
                   1079: may only be issued if this option is set.  This delta adds the "WIZ"
                   1080: command, and changes _KILL => KILL, _DEBUG => DEBUG, _VERBOSE => VERB,
                   1081: and _SHOWQ => SHOWQ.
                   1082: 
                   1083: D 3.224        82/10/16 13:43:28       eric    243     242     00000/00000/00005
                   1084: MRs:   024
                   1085: Fix debug statement in sendall
                   1086: 
                   1087: D 3.223        82/10/16 13:22:22       eric    242     241     00000/00000/00005
                   1088: MRs:   010
                   1089: Arrange for MD_FORK to work well with -v so that we can use it as the
                   1090: default.  This was really a separate bug, but I have just lumped it in
                   1091: here -- the problem came up with stty tostop.
                   1092: 
                   1093: D 3.222        82/10/13 21:55:07       eric    241     240     00000/00000/00005
                   1094: MRs:   023
                   1095: Don't interrupt the process doing accepts (have a separate process
                   1096: running the queue) to avoid a large pile of 4.1[abc] bugs.  When
                   1097: something more stable comes out, I will change this.
                   1098: 
                   1099: D 3.221        82/10/13 18:43:28       eric    240     239     00000/00000/00005
                   1100: MRs:   022
                   1101: Don't interpret <, >, (, or ) while in QST (quote state) during prescan
                   1102: 
                   1103: D 3.220        82/10/11 09:51:43       eric    239     238     00000/00000/00005
                   1104: MRs:   016
                   1105: have auto-queueups print a polite message in the log (rather than an
                   1106: obnoxious "Temporary Failure").  Adds a new routine "logdelivery".
                   1107: 
                   1108: D 3.219        82/10/09 21:02:27       eric    238     237     00000/00000/00005
                   1109: MRs:   005
                   1110: force a queuename in returntosender to insure that everyone has a
                   1111: queue name.
                   1112: 
                   1113: D 3.218        82/10/09 20:27:42       eric    237     236     00000/00000/00005
                   1114: MRs:   003
                   1115: Lock out interrupts during alias rebuild; add an alias "@:@" after
                   1116: rebuild that we can check for to insure that the alias file is up to
                   1117: date.  Times out after five minutes (is this reasonable on ucbvax?)
                   1118: and forces a rebuild.  It shouldn't matter in the long run if two
                   1119: people rebuild, so I think this is the right thing to do.
                   1120: 
                   1121: D 3.217        82/10/09 19:06:31       eric    236     235     00000/00000/00005
                   1122: MRs:   002
                   1123: Handle Reverse-Path in some reasonable way.  You must put the 'X'
                   1124: flag (M_FULLSMTP) in the local mailer's flags to get this line.
                   1125: 
                   1126: D 3.216        82/10/09 18:11:21       eric    235     234     00000/00000/00005
                   1127: MRs:   013
                   1128: print a status indication when a message is autoqueued, either from
                   1129: a -bq flag or a NoConnect
                   1130: 
                   1131: D 3.215        82/10/09 17:22:35       eric    234     233     00000/00000/00005
                   1132: MRs:   008
                   1133: Force -v override of deferred connect
                   1134: 
                   1135: D 3.214        82/10/09 17:10:37       eric    233     232     00000/00000/00005
                   1136: MRs:   004
                   1137: Only put the "from" person on the error queue if an error actually
                   1138: occured -- prevents many "duplicate supressed" messages, etc.
                   1139: 
                   1140: D 3.213        82/10/09 09:05:35       eric    232     231     00000/00000/00005
                   1141: MRs:   001
                   1142: implement an experimental forward-path algorithm by stripping off a
                   1143: leading "@..." component and dropping it on the end.
                   1144: 
                   1145: D 3.212        82/10/07 08:52:47       eric    231     230     00000/00000/00005
                   1146: try to come up with a workaround on some of the IPC problems relating to
                   1147: interrupted accepts -- all this can go when everyone at Berkeley runs
                   1148: unflakey IPC.  Also, never use ruleset three alone -- involves changing
                   1149: canonname again.  Probably shouldn't do an auto-call of ruleset three now.
                   1150: 
                   1151: D 3.211        82/10/07 01:40:19       eric    230     229     00000/00000/00005
                   1152: bother.... it takes time to close a socket
                   1153: 
                   1154: D 3.210        82/10/07 00:09:14       eric    229     228     00000/00000/00005
                   1155: allow passing through multiple rewriting sets in test mode;
                   1156: <ndir.h> => <dir.h> for maximum portability
                   1157: 
                   1158: D 3.209        82/10/06 11:45:40       eric    228     227     00000/00000/00005
                   1159: add test mode (MD_TEST, -bt)
                   1160: 
                   1161: D 3.208        82/09/30 22:29:46       eric    227     226     00000/00000/00005
                   1162: workaround in daemon accept code for 4.1a kernel bug: if an accept
                   1163: gets an EINTR and then a valid accept before the interrupt returns,
                   1164: the connection will be lost forever (at least, as I understand it).
                   1165: 
                   1166: D 3.207        82/09/26 17:04:24       eric    226     225     00000/00000/00005
                   1167: Put more configuration into setoption; merge some of the argv processing
                   1168: with this; move configuration information out of conf.c into the .cf
                   1169: file.  Since a lot of stuff will default to zero, a new .cf file is
                   1170: required.
                   1171: 
                   1172: D 3.206        82/09/26 14:45:52       eric    225     224     00000/00000/00005
                   1173: completely instantiate queue files for all mail, even if not needed;
                   1174: fix a bug that would probably come up once every ten years in creating
                   1175: the queue id.  should merge argv flag processing with option processing.
                   1176: 
                   1177: D 3.205        82/09/24 19:39:25       eric    224     223     00000/00000/00005
                   1178: change option implementation; define a bunch of interesting options.
                   1179: 
                   1180: D 3.204        82/09/24 09:38:36       eric    223     222     00000/00000/00005
                   1181: arrange to be able to define options; put precedences in .cf file;
                   1182: send errors to an Errors-To: field; fix a serious bug causing mail
                   1183: to not be delivered to anyone if there were any errors.
                   1184: 
                   1185: D 3.203        82/09/22 10:50:47       eric    222     221     00000/00000/00005
                   1186: don't put commas in non-address fields; have -bq clean up its temp files
                   1187: 
                   1188: D 3.202        82/09/21 10:15:00       eric    221     220     00000/00000/00005
                   1189: get rid of double error returns; improve verbose mode output to be
                   1190: standard format (even though verbose mode isn't standard); output
                   1191: queue files with commas in headers to insure that the oldstyle stuff
                   1192: doesn't get confused.
                   1193: 
                   1194: D 3.201        82/09/18 20:37:46       eric    220     219     00000/00000/00005
                   1195: fix botch where it believes that a list is !oldstyle just because
                   1196: it has an alias expansion in it.
                   1197: 
                   1198: D 3.200        82/09/16 20:25:01       eric    219     218     00000/00000/00005
                   1199: drop ":...;" stuff -- it screws it up aliases; pass parameters to
                   1200: subroutines (this also adds $@ and $: features to subr calls); check
                   1201: overflow of "tobuf" on smtp deliveries, which caused core dumps on
                   1202: large mailing lists
                   1203: 
                   1204: D 3.199        82/09/12 22:17:30       eric    218     217     00000/00000/00005
                   1205: accept ": ... ;" syntax for groups if !oldstyle
                   1206: 
                   1207: D 3.198        82/09/12 16:44:03       eric    217     216     00000/00000/00005
                   1208: change inheritance for macros in envelopes; be able to canonicalize
                   1209: non-domained names by appending domain from sender; call ruleset 3
                   1210: explicitly before doing other rulesets; some general cleanup.
                   1211: 
                   1212: D 3.197        82/09/11 17:18:16       eric    216     215     00000/00000/00005
                   1213: don't assign $s to be the sending host (this mucks up Received:
                   1214: lines) -- instead just use HELO messages; chdir into queue directory
                   1215: and make all pathnames relative; be more conservative in creating
                   1216: queue id's -- in the event you get file table overflows, etc.
                   1217: 
                   1218: D 3.196        82/09/08 23:55:46       eric    215     214     00000/00000/00005
                   1219: fix stupid bug in wait code to dispose of "Interrupted system call" message
                   1220: 
                   1221: D 3.195        82/09/08 22:13:20       eric    214     213     00000/00000/00005
                   1222: fix a nasty botch in 3.194 that killed SMTP in daemon mode.   sigh......
                   1223: 
                   1224: D 3.194        82/09/08 21:20:05       eric    213     212     00000/00000/00005
                   1225: try to avoid "Interrupted system call" on wait in deliver and on
                   1226: writes; fix returned message to have proper sender; handle extra
                   1227: mailer output more cleverly.
                   1228: 
                   1229: D 3.193        82/09/06 19:55:17       eric    212     211     00000/00000/00005
                   1230: more hacking on oldstyle -- always assume sender fields are in new
                   1231: style so that locally generated fields are edited correctly.
                   1232: 
                   1233: D 3.192        82/09/06 18:47:26       eric    211     210     00000/00000/00005
                   1234: fix botch in "at"s in headers
                   1235: 
                   1236: D 3.191        82/09/06 18:24:40       eric    210     209     00000/00000/00005
                   1237: fix botch in computing e_oldstyle
                   1238: 
                   1239: D 3.190        82/09/06 17:58:40       eric    209     208     00000/00000/00005
                   1240: fix bug in scanner state machine that never let you out of quote state.
                   1241: 
                   1242: D 3.189        82/09/06 17:14:03       eric    208     207     00000/00000/00005
                   1243: increase log level needed to print "entered" message.
                   1244: 
                   1245: D 3.188        82/09/06 17:00:23       eric    207     206     00000/00000/00005
                   1246: user SMTP fixes to talk to ISI
                   1247: 
                   1248: D 3.187        82/09/06 16:24:51       eric    206     205     00000/00000/00005
                   1249: install new state-driven scanner; make everyone use it, thus fixing
                   1250: problems of quoted commas, etc.
                   1251: 
                   1252: D 3.186        82/09/05 18:08:58       eric    205     204     00000/00000/00005
                   1253: change $g processing from a macro substitution per mailer to two sets
                   1254: of rewriting rules per mailer -- one each for sender and recipient
                   1255: fields; convert to NBS standard on Return-Receipt-To: and Precedence:
                   1256: fields; clean up From: processing code and generalize it to all
                   1257: sender fields; tune debugging code; clean up canonname.
                   1258: **** This delta invalidates previous configuration files ****
                   1259: 
                   1260: D 3.185        82/09/05 11:48:27       eric    204     203     00000/00000/00005
                   1261: add $* to match zero or more and $> to make a "subroutine" call; stick
                   1262: in initial hooks for per-mailer rewriting; improve diagnostics in readcf,
                   1263: including number lines; increase the number of rewriting sets.
                   1264: 
                   1265: D 3.184        82/09/01 10:24:00       eric    203     202     00000/00000/00005
                   1266: log entering uid & pid; allow CANONUSER ($:) to abort a rewriting set.
                   1267: 
                   1268: D 3.183        82/08/31 17:46:56       eric    202     201     00000/00000/00005
                   1269: increase MAXMAILERS to 25
                   1270: 
                   1271: D 3.182        82/08/31 10:05:56       eric    201     200     00000/00000/00005
                   1272: clean up reply code processing some more; in particular, give more
                   1273: detail in many messages.  process connection failures correctly.
                   1274: 
                   1275: D 3.181        82/08/29 23:31:35       eric    200     199     00000/00000/00005
                   1276: handle comments and quotes in headers; still doesn't deal with
                   1277: backslashes however -- prescan should be cleaned up to deal with
                   1278: this case.  it turns out there are many bugs in prescan; it should
                   1279: be extensively rewritten.
                   1280: 
                   1281: D 3.180        82/08/29 17:32:49       eric    199     198     00000/00000/00005
                   1282: fix serious botch in SMTP reply code delta; change a bunch of
                   1283: "Internal error" codes to a new "Remote protocol error" -- so that
                   1284: I don't get blamed for things that other systems do.
                   1285: 
                   1286: D 3.179        82/08/29 16:52:31       eric    198     197     00000/00000/00005
                   1287: do a better job at interpreting SMTP reply codes
                   1288: 
                   1289: D 3.178        82/08/29 15:52:20       eric    197     196     00000/00000/00005
                   1290: give 554 message on syserr (instead of 451) if errno == 0; as it
                   1291: was some permanent errors appeared transient
                   1292: 
                   1293: D 3.177        82/08/27 18:01:25       eric    196     195     00000/00000/00005
                   1294: hack crackaddr to strip blanks off the end of a cracked address; this
                   1295: happens because "u at h" becomes "$g  " (with two spaces at the end).
                   1296: this doesn't solve the general case (e.g., "u at h (me)" comes out as
                   1297: "$g   (me)", with three spaces), but does handle the ugliest case.
                   1298: besides, the "at" syntax is supposed to go away.
                   1299: 
                   1300: D 3.176        82/08/27 16:01:58       eric    195     194     00000/00000/00005
                   1301: simplify timeout code; allow multiple simultaneous queue runs so that
                   1302: large messages don't freeze things up; fix EINTR problem in sfgets;
                   1303: clean up canonname to be really correct; lots of misc. cleanup
                   1304: 
                   1305: D 3.175        82/08/27 11:11:40       eric    194     193     00000/00000/00005
                   1306: release e_id after fork in daemon code; ignore events scheduled by
                   1307: another process
                   1308: 
                   1309: D 3.174        82/08/25 23:18:24       eric    193     192     00000/00000/00005
                   1310: assign a new queue id to all jobs coming in via TCP
                   1311: 
                   1312: D 3.173        82/08/25 21:22:10       eric    192     191     00000/00000/00005
                   1313: sigh....  more fun and games in the daemon code to try to guess right.
                   1314: 
                   1315: D 3.172        82/08/25 19:44:33       eric    191     190     00000/00000/00005
                   1316: recreate a socket after every failed accept()
                   1317: 
                   1318: D 3.171        82/08/25 16:19:23       eric    190     189     00000/00000/00005
                   1319: apply ruleset 4 to rewrite addresses in the body of the message; fix
                   1320: a clock.c bug that caused it to lose events; more time cleanup.
                   1321: 
                   1322: D 3.170        82/08/25 11:21:21       eric    189     188     00000/00000/00005
                   1323: clean up time manipulation to always be current; assign job
                   1324: id's earlier to make sure there is always one with a message.
                   1325: 
                   1326: D 3.169        82/08/25 10:46:27       eric    188     187     00000/00000/00005
                   1327: log locked files in queuer; don't mistakenly start up two runqueue's
                   1328: 
                   1329: D 3.168        82/08/24 19:55:39       eric    187     186     00000/00000/00005
                   1330: put queueup log messages on a higher logging level
                   1331: 
                   1332: D 3.167        82/08/24 19:41:32       eric    186     185     00000/00000/00005
                   1333: log more info (on log level 11); try to detect wild accept loops;
                   1334: some minor cleanup and debugging checks; fix NoConnect option to;
                   1335: only apply to expensive mailers (regardless of sendqueue order)
                   1336: 
                   1337: D 3.166        82/08/24 10:27:46       eric    185     184     00000/00000/00005
                   1338: clean up event handling so that events that do longjmp's don't turn
                   1339: off all future events; diagnose reentry of main().
                   1340: 
                   1341: D 3.165        82/08/23 11:59:50       eric    184     183     00000/00000/00005
                   1342: clean up queueing; log time in queue.
                   1343: **** This delta invalidates mqueue files ****
                   1344: 
                   1345: D 3.164        82/08/23 09:23:54       eric    183     182     00000/00000/00005
                   1346: allow continuation lines in .cf file (particularly in headers)
                   1347: 
                   1348: D 3.163        82/08/22 23:07:11       eric    182     181     00000/00000/00005
                   1349: change $i to $j; $i is now queue id; put "Received:" format in .cf
                   1350: file; minor cleanup
                   1351: 
                   1352: D 3.162        82/08/22 19:03:19       eric    181     180     00000/00000/00005
                   1353: assign a unique id to each transaction that can be determined from
                   1354: the queue file name.
                   1355: 
                   1356: D 3.161        82/08/21 17:54:37       eric    180     179     00000/00000/00005
                   1357: move <> and forward path processing to .cf file; increase MAXATOMS
                   1358: since some "comment" information may now be part of the address.
                   1359: **** this installation requires a new sendmail.cf file ****
                   1360: 
                   1361: D 3.160        82/08/20 20:35:15       eric    179     178     00000/00000/00005
                   1362: time stamp the SMTP greeting message; increase the buffer size in
                   1363: syslog to prevent core dumps.
                   1364: 
                   1365: D 3.159        82/08/17 20:45:43       eric    178     177     00000/00000/00005
                   1366: change Mail-From: to Received: for new SMTP spec (RFC821); handle
                   1367: folded lines in queue files correctly.
                   1368: 
                   1369: D 3.158        82/08/17 16:19:10       eric    177     176     00000/00000/00005
                   1370: rework header processing: do special purpose header munging in a
                   1371: separate routine so that the queue run can do it also; parse From lines
                   1372: in a fancy way, extracting the address part and turning it into a $g
                   1373: macro; avoid reading and processing core files that end up in the queue
                   1374: directory; check the queue directory name for legality; fix the verify
                   1375: (-bv) option.
                   1376: 
                   1377: D 3.157        82/08/15 17:35:39       eric    176     175     00000/00000/00005
                   1378: mark From: lines with the H_FROM bit; make VRFY work by adding the
                   1379: QuickAbort flag; handle headers more cleverly in queue files -- this
                   1380: seems to work, but I am frankly nervous.  Note: this version
                   1381: represents a flag day!-- old queues will not process properly.
                   1382: 
                   1383: D 3.156        82/08/15 11:58:25       eric    175     174     00000/00000/00005
                   1384: output class rather than priority in log; accept zero intervals in
                   1385: event scheduling; allow continuation lines in queue files (particularly
                   1386: for headers); don't diagnose inappropriate errors when accepting a
                   1387: connection; fix bug when reprocessing addresses that put garbage in
                   1388: the header; some misc. debugging info (-d14 => commaize)
                   1389: 
                   1390: D 3.155        82/08/08 21:15:44       eric    174     173     00000/00000/00005
                   1391: make "sleep" work correctly even in the face of other events; clean
                   1392: up the queue processing: child queue runs now go away when done.  more
                   1393: debugging logging is needed to verify that this works right though.
                   1394: 
                   1395: D 3.154        82/08/08 17:05:19       eric    173     172     00000/00000/00005
                   1396: move remotename() from deliver.c to parse.c; change default log level
                   1397: to 9; put error versus success delivery on different log levels;
                   1398: diagnose overlength lines in headers; more general event mechanism;
                   1399: initial implementation of canonname; don't diagnose link errors in
                   1400: queue, since another daemon could have grabbed it legitimately;
                   1401: fix a problem in VRFY on bad addresses
                   1402: 
                   1403: D 3.153        82/08/08 01:00:25       eric    172     171     00000/00000/00005
                   1404: change debug level to a debug vector; add levels on logging (and the
                   1405: -L flag); change logging to be by message-id; elevate message-id;
                   1406: some lint-type cleanup
                   1407: 
                   1408: D 3.152        82/08/07 11:13:15       eric    171     170     00000/00000/00005
                   1409: Fix address rewriting so that multiple spaces and tabs work properly
                   1410: 
                   1411: D 3.151        82/07/31 16:57:49       eric    170     169     00000/00000/00005
                   1412: don't give error on ETIMEDOUT on accept call; print errno properly
                   1413: in syserr()
                   1414: 
                   1415: D 3.150        82/07/31 12:56:56       eric    169     168     00000/00000/00005
                   1416: By default, just queue up the mail for most mailers and deliver
                   1417: from the queue.  This avoids the wild process problem in netnews
                   1418: (or so we hope).
                   1419: 
                   1420: D 3.149        82/07/27 23:09:04       eric    168     167     00000/00000/00005
                   1421: clean up semantics of daemon mode to facilitate use of other IPC;
                   1422: move some code to main.c because it is not part of creating a
                   1423: connection; if you can't create a socket assume there is another
                   1424: sendmail running and exit; improve the verbose information in an
                   1425: SMTP connection to make it more obvious which messages went which
                   1426: way; don't attempt delivery if you get an error reading the queue file.
                   1427: 
                   1428: D 3.148        82/07/25 13:11:20       eric    167     166     00000/00000/00005
                   1429: clean up error handling
                   1430: 
                   1431: D 3.147        82/07/22 01:23:15       eric    166     165     00000/00000/00005
                   1432: new version of syslog that uses 4.2 IPC
                   1433: 
                   1434: D 3.146        82/07/20 19:39:15       eric    165     164     00000/00000/00005
                   1435: be smarter about when to rerun the queue when you are in repeated
                   1436: queue mode.
                   1437: 
                   1438: D 3.145        82/07/14 11:19:27       eric    164     163     00000/00000/00005
                   1439: disconnect sendmail from the controlling tty in daemon mode.
                   1440: 
                   1441: D 3.144        82/07/14 11:00:33       eric    163     162     00000/00000/00005
                   1442: arrange for MotherPid to be correct in daemon mode
                   1443: 
                   1444: D 3.143        82/07/14 10:46:00       eric    162     161     00000/00000/00005
                   1445: fork automatically in daemon mode (but only if no debugging)
                   1446: 
                   1447: D 3.142        82/07/14 09:25:11       eric    161     160     00000/00000/00005
                   1448: don't accidently unlink a null pointer in finis(); change the way
                   1449: it decides whether to remove the temp file (you don't want to if you
                   1450: are queueing it up); fix a bug in Apparently-To: that caused it to
                   1451: output both pre- and post-expanded names (only output pre-expanded)
                   1452: 
                   1453: D 3.141        82/07/05 20:56:24       eric    160     159     00000/00000/00005
                   1454: flush fatal error flag before returning error messages to avoid error
                   1455: message loop; improve debugging: flush transcript before doing things
                   1456: that might take a long time, add some info to debug messages; extend
                   1457: configuration on timeouts so that text of error message is in conf.c
                   1458: 
                   1459: D 3.140        82/07/05 18:49:49       eric    159     158     00000/00000/00005
                   1460: add "Apparently-To:" field if no recipients are in the header.
                   1461: 
                   1462: D 3.139        82/07/05 13:21:21       eric    158     157     00000/00000/00005
                   1463: count Mail-From: lines to get a hop count, giving error as
                   1464: appropriate after collection; don't attempt delivery of message if
                   1465: errors occur before or during collection; fix a bug in -as mode
                   1466: (non-daemon SMTP).
                   1467: 
                   1468: D 3.138        82/07/05 12:37:23       eric    157     156     00000/00000/00005
                   1469: check for errors before opening a daemon connection
                   1470: 
                   1471: D 3.137        82/07/05 12:22:02       eric    156     155     00000/00000/00005
                   1472: split off clock stuff from util.c so that vacation will compile
                   1473: 
                   1474: D 3.136        82/07/05 12:02:53       eric    155     154     00000/00000/00005
                   1475: put timeouts on net reads
                   1476: 
                   1477: D 3.135        82/07/02 20:52:46       eric    154     153     00000/00000/00005
                   1478: arrange to not lose temporary queue control files (tf files)
                   1479: if you interrupt a queue run process.
                   1480: 
                   1481: D 3.134        82/07/02 10:00:16       eric    153     152     00000/00000/00005
                   1482: be paranoid about resetting the "FatalErrors" flag -- always reset
                   1483: after forking for daemon or queue mode.  This will prevent false error
                   1484: return delivery.
                   1485: 
                   1486: D 3.133        82/07/02 09:43:39       eric    152     151     00000/00000/00005
                   1487: take special care in outputing error messages to the transcript;
                   1488: a little bit of paranoia never hurt a mail system.
                   1489: 
                   1490: D 3.132        82/06/30 22:39:22       eric    151     150     00000/00000/00005
                   1491: open a separate transcript in the child of a daemon.
                   1492: 
                   1493: D 3.131        82/06/26 14:53:40       eric    150     149     00000/00000/00005
                   1494: clean up error messages on SMTP temporary failures resulting from
                   1495: failure to connect properly.
                   1496: 
                   1497: D 3.130        82/06/26 13:53:35       eric    149     148     00000/00000/00005
                   1498: more debug information; fix dependencies in makefile
                   1499: 
                   1500: D 3.129        82/06/26 13:10:41       eric    148     147     00000/00000/00005
                   1501: lint
                   1502: 
                   1503: D 3.128        82/06/26 12:33:39       eric    147     146     00000/00000/00005
                   1504: take environment variable "NAME" to determine what your full name
                   1505: is; this is overridden by -F.
                   1506: 
                   1507: D 3.127        82/06/26 11:56:51       eric    146     145     00000/00000/00005
                   1508: add _kill command to SMTP.  this is probably dangerous in the
                   1509: outside world.
                   1510: 
                   1511: D 3.126        82/06/25 19:38:24       eric    145     144     00000/00000/00005
                   1512: add debugging information to server smtp code: _debug to set
                   1513: Debug, _verbose to set verbose, and _showq to show the send queue
                   1514: (already existant, just a name change)
                   1515: 
                   1516: D 3.125        82/06/23 12:12:19       eric    144     143     00000/00000/00005
                   1517: check prescan return values in remotename
                   1518: 
                   1519: D 3.124        82/06/19 21:14:18       eric    143     142     00000/00000/00005
                   1520: remember to put a newline at the end of the UGLYUUCP line
                   1521: 
                   1522: D 3.123        82/06/19 21:09:10       eric    142     141     00000/00000/00005
                   1523: get rid of comment lines when storing rewriting rules
                   1524: 
                   1525: D 3.122        82/06/19 20:47:23       eric    141     140     00000/00000/00005
                   1526: improve SMTP error reporting
                   1527: 
                   1528: D 3.121        82/06/18 11:58:31       eric    140     139     00000/00000/00005
                   1529: believe host name on SMTP "HELO" line
                   1530: 
                   1531: D 3.120        82/06/17 10:44:38       eric    139     138     00000/00000/00005
                   1532: fix botch in -Q flag (sets AliasFile rather than QueueDir)
                   1533: 
                   1534: D 3.119        82/06/16 14:51:16       eric    138     137     00000/00000/00005
                   1535: allow connection refused as a temporary error; make sure there is
                   1536: always someone to return the mail to on error
                   1537: 
                   1538: D 3.118        82/06/16 14:29:20       eric    137     136     00000/00000/00005
                   1539: fix botch in outputing "recipient" type lines (e.g., To:)
                   1540: 
                   1541: D 3.117        82/06/07 23:53:26       eric    136     135     00000/00000/00005
                   1542: allow multiple connections; call putline to output FULL_SMTP
                   1543: lines (to limit line lengths, etc.); involves adding an asm.sed script
                   1544: to the makefile
                   1545: 
                   1546: D 3.116        82/06/07 07:54:55       eric    135     134     00000/00000/00005
                   1547: make transcripts verbose always; misc. message cleanup, etc.
                   1548: 
                   1549: D 3.115        82/06/07 07:06:13       eric    134     133     00000/00000/00005
                   1550: strip out xlate stuff -- this belongs at a different level
                   1551: 
                   1552: D 3.114        82/06/06 23:13:08       eric    133     132     00000/00000/00005
                   1553: avoid loops by not sending to owner-owner-* -- just send to
                   1554: owner-owner instead
                   1555: 
                   1556: D 3.113        82/06/06 23:05:17       eric    132     131     00000/00000/00005
                   1557: implement alias owner feature.  this actually works for any user.
                   1558: basically, if the alias owner-xxx exists, errors sending to xxx will be
                   1559: sent to that alias rather than to the sender.
                   1560: 
                   1561: D 3.112        82/05/31 19:03:47       eric    131     130     00000/00000/00005
                   1562: make temp files the correct modes in all cases
                   1563: 
                   1564: D 3.111        82/05/31 18:49:50       eric    130     129     00000/00000/00005
                   1565: pass lint.  notice that definitions in llib-lc have changed for
                   1566: alarm() and sleep() calls {arg was unsigned, is now int}.
                   1567: 
                   1568: D 3.110        82/05/31 17:10:51       eric    129     128     00000/00000/00005
                   1569: eliminate -V, -D, -p flags in favor of a single flag "-bx"
                   1570: (be in mode x).
                   1571: 
                   1572: D 3.109        82/05/31 15:35:57       eric    128     127     00000/00000/00005
                   1573: don't output SMTP/FTP error codes in transcript file
                   1574: 
                   1575: D 3.108        82/05/31 15:32:18       eric    127     126     00000/00000/00005
                   1576: finish implementing envelopes.  it's not completely clear to me that
                   1577: this is really the way to go, but it seems clearly better than what
                   1578: i had before.  this delta includes many other minor changes, so it
                   1579: should probably not be blithely removed.
                   1580: 
                   1581: D 3.107        82/05/30 10:25:35       eric    126     125     00000/00000/00005
                   1582: add M_FULLSMTP (``X'' flag in .cf file) for eventual implementation
                   1583: of full SMTP.  This version must support such garbage as line limits,
                   1584: address length limits, return-path, etc.
                   1585: 
                   1586: D 3.106        82/05/29 20:00:30       eric    125     124     00000/00000/00005
                   1587: allow the user with name "daemon" to send mail as anyone s/he wants.
                   1588: 
                   1589: D 3.105        82/05/22 02:05:48       eric    124     123     00000/00000/00005
                   1590: add "junk mail" -- error responses are never returned.
                   1591: 
                   1592: D 3.104        82/05/22 01:38:07       eric    123     122     00000/00000/00005
                   1593: add "envelopes" to contain the basic information needed as control
                   1594: info for each message.  currently there is only one envelope -- this
                   1595: being the obvious stupid conversion.  later there will be separate
                   1596: envelopes for error messages, return receipts, etc.
                   1597: 
                   1598: D 3.103        82/05/20 17:46:07       eric    122     121     00000/00000/00005
                   1599: add dfopen as a "determined fopen" -- it retries if it gets recoverable
                   1600: errors.  we use it for returning mail (to dead.letter) and creating the
                   1601: temp file.  the whole idea is to avoid dropping things on the floor on
                   1602: heavily loaded systems.  this is untested, since it seems impossible to
                   1603: fill up the inode or file tables on this VAX (but it works if the open
                   1604: succeeds).
                   1605: 
                   1606: D 3.102        82/05/15 12:29:36       eric    121     120     00000/00000/00005
                   1607: add the 'R' flag to mailers, saying to rewrite the recipient addresses
                   1608: to be relative to the recipient.  This makes reply code easy, but
                   1609: confuses user mail programs that are expecting to have to rewrite
                   1610: recipient addresses.  In general, the receiving host must be "smart"
                   1611: for this to work.
                   1612: 
                   1613: D 3.101        82/05/06 20:21:14       eric    120     119     00000/00000/00005
                   1614: allow socket number on [IPC] connections -- eventually this
                   1615: could be used to handle other low-level protocols.
                   1616: 
                   1617: D 3.100        82/03/27 20:15:12       eric    119     118     00000/00000/00005
                   1618: delete neat remotename feature, because it doesn't work right in
                   1619: UUCPland -- and breaks stupid hosts.  'Twill be fixed, I promise.  Time
                   1620: must be spent figuring out how to define the civilized versus the
                   1621: uncivilized world.
                   1622: 
                   1623: D 3.99 82/03/27 19:57:44       eric    118     117     00000/00000/00005
                   1624: compensate for bug in getlogin: can return the empty string ("")
                   1625: for certain error conditions rather than the NULL pointer.
                   1626: 
                   1627: D 3.98 82/03/22 22:37:54       eric    117     116     00000/00000/00005
                   1628: continue the impossible task of tracking Bill Joy
                   1629: 
                   1630: D 3.97 82/03/22 22:10:44       eric    116     115     00000/00000/00005
                   1631: more cleanup for new 4.2 system configuration and some more fixes
                   1632: for vanilla V7
                   1633: 
                   1634: D 3.96 82/03/20 18:13:01       eric    115     114     00000/00000/00005
                   1635: take % as an acceptable name terminator in GECOS field
                   1636: ("in-care-of") -- for TEF%UCSFCGL
                   1637: 
                   1638: D 3.95 82/03/20 16:12:27       eric    114     113     00000/00000/00005
                   1639: 16 bit changes -- should have no effect on VAX binaries to
                   1640: speak of.
                   1641: 
                   1642: D 3.94 82/03/06 16:11:49       eric    113     112     00000/00000/00005
                   1643: get queue scanning working correctly in conjunction with daemon mode
                   1644: 
                   1645: D 3.93 82/03/06 15:35:49       eric    112     111     00000/00000/00005
                   1646: have daemon mode assume SMTP mode
                   1647: 
                   1648: D 3.92 82/03/06 15:08:24       eric    111     110     00000/00000/00005
                   1649: give correct error message in SMTP if some of the addresses are not ok
                   1650: 
                   1651: D 3.91 82/03/06 14:52:22       eric    110     109     00000/00000/00005
                   1652: arrange to be able to accept a connection from any host.
                   1653: 
                   1654: D 3.90 82/03/06 14:15:55       eric    109     108     00000/00000/00005
                   1655: collapse special character processing into macro processing for
                   1656: simplicity of code.
                   1657: 
                   1658: D 3.89 82/03/06 12:09:18       eric    108     107     00000/00000/00005
                   1659: clean up error handling in IPC case; fix a minor bug in headers in
                   1660: queueing code; make SMTP mail multi user per connect.
                   1661: 
                   1662: D 3.88 82/03/05 10:45:48       eric    107     106     00000/00000/00005
                   1663: remove silly $U dependency in UGLYUUCP code
                   1664: 
                   1665: D 3.87 82/03/05 10:13:06       eric    106     105     00000/00000/00005
                   1666: include direct connect on outgoing mail if the pathname is "[IPC]" --
                   1667: this gives minimal number of processes for ethernet mail.
                   1668: 
                   1669: D 3.86 82/02/27 12:29:31       eric    105     104     00000/00000/00005
                   1670: more work on after $g translate rewriting
                   1671: 
                   1672: D 3.85 82/02/27 11:37:42       eric    104     103     00000/00000/00005
                   1673: implement "return receipt requested".
                   1674: 
                   1675: D 3.84 82/02/27 09:51:36       eric    103     102     00000/00000/00005
                   1676: improve rewriting of "after $g translate" to correspond to the
                   1677: real world.....
                   1678: 
                   1679: D 3.83 82/02/26 21:56:10       eric    102     101     00000/00000/00005
                   1680: implement daemon mode
                   1681: 
                   1682: D 3.82 82/02/26 19:02:33       eric    101     100     00000/00000/00005
                   1683: default to OldStyle headers -- this turns out to be needed so that it
                   1684: will work right when running as a server.
                   1685: 
                   1686: D 3.81 82/02/22 19:59:16       eric    100     99      00000/00000/00005
                   1687: some hacks to make the ethernet community happier -- .cf changes only
                   1688: 
                   1689: D 3.80 82/02/22 19:32:12       eric    99      98      00000/00000/00005
                   1690: be much more clever about splitting up addresses when doing header
                   1691: rewriting.  become NewStyle automatically based on heuristics; this
                   1692: makes some other addresses work, although there are conceivably
                   1693: sites that this could break.  Perhaps we should default to OldStyle?
                   1694: I don't think this would break anything.
                   1695: 
                   1696: D 3.79 82/02/20 16:56:02       eric    98      97      00000/00000/00005
                   1697: output names in a nice comma-separated fashion in messages -- this
                   1698: opens up other possibilities
                   1699: 
                   1700: D 3.78 82/02/20 12:59:46       eric    97      96      00000/00000/00005
                   1701: expand macros in rewriting rules early to allow multi-word macros to
                   1702: be processed correctly.
                   1703: 
                   1704: D 3.77 82/02/20 12:12:09       eric    96      95      00000/00000/00005
                   1705: add the -c flag, to cause sendmail to just queue messages that are for
                   1706: mailers that are expensive; a later instantiation can come around and
                   1707: send them in a batch.  Also, pass macro definitions through the
                   1708: queueing code so that macros can be expanded later rather than sooner;
                   1709: this is important for destination dependent macros such as $g.
                   1710: 
                   1711: D 3.76 82/02/04 20:31:21       eric    95      94      00000/00000/00005
                   1712: add host aliasing; add -p flag.  this version doesn't yet know about
                   1713: replacing the text of the host alias into the message however.  syntax
                   1714: is grotty: "/hostmatch:%s@newhost" or whatever.
                   1715: 
                   1716: D 3.75 82/01/23 14:21:06       eric    94      93      00000/00000/00005
                   1717: add M_UGLYUUCP flag; only catch names with leading slash as filenames;
                   1718: let the user redefine their full name; don't pass -r or -f to uux.
                   1719: 
                   1720: D 3.74 82/01/10 21:57:33       eric    93      92      00000/00000/00005
                   1721: cleanup from cbosgd (Mark Horton) testing; some internals, mostly
                   1722: configuration.  This tries to make the configuration file (cf.m4) be
                   1723: much more general, but I fear it is doomed to failure -- it may be
                   1724: better to just tell people to roll their own.
                   1725: 
                   1726: D 3.73 82/01/05 09:59:19       eric    92      91      00000/00000/00005
                   1727: fix botch in UGLYUUCP code -- gave "remote from <dest>" instead of
                   1728: "remote from <source>"
                   1729: 
                   1730: D 3.72 82/01/01 18:39:43       eric    91      90      00000/00000/00005
                   1731: know about all known Berknet host names so that we can handle the "."
                   1732: notation happily in the full name representation.
                   1733: 
                   1734: D 3.71 82/01/01 18:27:15       eric    90      89      00000/00000/00005
                   1735: send to dead.letter using sendto/recipient/deliver mechanism rather
                   1736: than mailfile; this fixes a bug with the "from" name and seems like
                   1737: a better abstraction.
                   1738: 
                   1739: D 3.70 81/12/06 12:39:10       eric    89      88      00002/00000/00003
                   1740: cleanup so it will go through lint without any fancy grep -v's;
                   1741: change the way SCCS Id's are handled.
                   1742: 
                   1743: D 3.69 81/12/05 14:14:06       eric    88      87      00000/00000/00003
                   1744: insert SMTP "Mail-From:" line.
                   1745: 
                   1746: D 3.68 81/12/05 11:53:41       eric    87      86      00000/00000/00003
                   1747: put the SMTP and queueing code on compilation flags so that sendmail
                   1748: will fit on non-ID PDP-11's (ugh); put the ugly UUCP hack on a
                   1749: compilation flag also to emphasize that it sucks eggs; makefile
                   1750: cleanup.
                   1751: 
                   1752: D 3.67 81/11/27 21:37:05       eric    86      85      00000/00000/00003
                   1753: this is a stupid hack to put "remote from <host>" lines on the From
                   1754: lines going to UUCP mail.  someday i hope to rip out this stupidity.
                   1755: it is triggered by any mailer named "uucp" -- it ought to be a special
                   1756: flag, but i refuse to legitimize antique hacky mistakes.
                   1757: 
                   1758: D 3.66 81/11/22 19:17:45       eric    85      84      00000/00000/00003
                   1759: Edit queue control files when running queue (assuming there are still
                   1760: recipients left).  Also, modify the MsgPriority to be the absolute
                   1761: number (not the Priority: value); this allows us to include aging into
                   1762: the priority algorithm.
                   1763: 
                   1764: D 3.65 81/11/21 18:42:47       eric    84      83      00000/00000/00003
                   1765: change the send queue to be only one queue instead of one per mailer.
                   1766: this is slightly inefficient but simpler.  also, pass this queue
                   1767: around so we can have multiple send queues.  this makes VRFY work.
                   1768: 
                   1769: D 3.64 81/11/21 16:38:29       eric    83      82      00000/00000/00003
                   1770: convert to SMTP draft 3 -- finishing touches.  Punt on the VRFY/
                   1771: EXPN commands for now; they aren't required anyhow.  Move the fullname
                   1772: into the address structure so it can be inherited.
                   1773: 
                   1774: D 3.63 81/11/11 20:24:07       eric    82      81      00000/00000/00003
                   1775: integrate user SMTP into sendmail itself.  If there is no $u arg
                   1776: in the mailer argument list, SMTP is run.  This can be used directly
                   1777: over the Ethernet or to any clever mailer.  We still need to edit
                   1778: spooled control files to remove recipients that have been successfully
                   1779: sent during queue processing.
                   1780: 
                   1781: D 3.62 81/11/08 13:00:21       eric    81      80      00000/00000/00003
                   1782: know about SMTP over TCP.  The current SMTP user is not clever
                   1783: enough to deal with multiple users at one host.  To fix this we will
                   1784: have to speak some smart protocol between sendmail and the mailer --
                   1785: maybe SMTP??
                   1786: 
                   1787: D 3.61 81/11/07 15:41:39       eric    80      79      00000/00000/00003
                   1788: clean up to compile & work on ARPAVAX; move stat file to
                   1789: /usr/lib/sendmail.st; fix bug in syserr with error codes
                   1790: 
                   1791: D 3.60 81/10/31 22:12:47       eric    79      78      00000/00000/00003
                   1792: drop old NCP stuff for ARPANET handling; fix some bugs in error
                   1793: messages with multiple recipients in SMTP; clean up error handling
                   1794: 
                   1795: D 3.59 81/10/27 12:24:51       eric    78      77      00000/00000/00003
                   1796: experimental version combining queueing with daemon operation.
                   1797: I'm sure this doesn't work -- if only because the wait()s are funny.
                   1798: 
                   1799: D 3.58 81/10/27 10:50:52       eric    77      76      00000/00000/00003
                   1800: More queueing cleanup: implement timeouts (still one-stage),
                   1801: properly implement priorities (didn't work before), and miscellaneous
                   1802: cleanup.
                   1803: 
                   1804: D 3.57 81/10/26 14:22:34       eric    76      75      00000/00000/00003
                   1805: Install new experimental queueing facility -- one stage timeout,
                   1806: etc.  This version is still quite incomplete.  It needs to reorder
                   1807: the queue after some interval, do two-stage timeout, take option
                   1808: info from the queue file instead of the command line, read the
                   1809: sender's .mailcf file, etc.  Some of this is useful for SMTP also.
                   1810: 
                   1811: D 3.56 81/10/23 19:38:09       eric    75      74      00000/00000/00003
                   1812: Eliminate magic MN_LOCAL and MN_PROG; change q_mailer item in ADDRESS
                   1813: to be pointer to mailer rather than index.
                   1814: 
                   1815: D 3.55 81/10/22 10:25:29       eric    74      73      00000/00000/00003
                   1816: move stats file to /usr/lib; put location of sendmail.hf in conf.c
                   1817: 
                   1818: D 3.54 81/10/22 09:43:48       eric    73      72      00000/00000/00003
                   1819: take fullname from /etc/passwd if Smtp mode and sender name
                   1820: is indeed local.  Also accepts names more often; this is probably
                   1821: a disaster for sender verification.
                   1822: 
                   1823: D 3.53 81/10/22 09:14:30       eric    72      71      00000/00000/00003
                   1824: implement HELP and MRSQ -- MRSQ is a partial implementation
                   1825: of old MTP -- in particular, To: fields in MAIL commands are not yet
                   1826: implemented.  The "message" routine now takes first args of the form
                   1827: "999-" to specify continuation.
                   1828: 
                   1829: D 3.52 81/10/20 11:36:24       eric    71      70      00000/00000/00003
                   1830: clean up the SMTP stuff some more
                   1831: 
                   1832: D 3.51 81/10/19 22:27:17       eric    70      69      00000/00000/00003
                   1833: implement SMTP mode -- doesn't support source routing or the
                   1834: HELP command, and doesn't give the correct code on VRFY or forwarding.
                   1835: Maybe someday....
                   1836: 
                   1837: D 3.50 81/10/17 16:58:04       eric    69      68      00000/00000/00003
                   1838: initial prep to put in Daemon mode
                   1839: 
                   1840: D 3.49 81/10/12 10:04:19       eric    68      67      00000/00000/00003
                   1841: throw in some "errno = 0;"'s to make syserr's more accurate;
                   1842: take any -f flag if debug mode and uid==euid.
                   1843: 
                   1844: D 3.48 81/10/08 22:55:37       eric    67      66      00000/00000/00003
                   1845: ignore interrupts and hangups while calling mailer.
                   1846: 
                   1847: D 3.47 81/10/08 09:13:30       eric    66      65      00000/00000/00003
                   1848: fix botch in backup code during rewriting
                   1849: 
                   1850: D 3.46 81/10/06 19:12:57       eric    65      64      00000/00000/00003
                   1851: change rewriting rules to use $N on RHS to match LHS, and include
                   1852: $=X (class match) in the matching; this will allow us to match the
                   1853: proposed "user.host@domain" syntax as well as the old syntax, by
                   1854: putting the known domains into a class to disambiguate.
                   1855: 
                   1856: D 3.45 81/10/02 11:05:21       eric    64      63      00000/00000/00003
                   1857: arrange to give the correct "from" person on error messages.
                   1858: 
                   1859: D 3.44 81/10/02 10:07:38       eric    63      62      00000/00000/00003
                   1860: use ruleset 2 to rewrite names after the $g translate (to fix some
                   1861: forwarding problems; do a read check in putmessage (just in case
                   1862: the temp file disappeared); some general cleanup.
                   1863: 
                   1864: D 3.43 81/09/30 10:00:20       eric    62      61      00000/00000/00003
                   1865: fix the <> syntax, convert "at" to "@" in from addresses also,
                   1866: plus some minorness to get the multi-machine case going nicely.
                   1867: 
                   1868: D 3.42 81/09/29 18:22:25       eric    61      60      00000/00000/00003
                   1869: change processing of From: person; basically, this mod deletes the
                   1870: Original-From: line if redundant with the generated From: line, uses
                   1871: the Original-From: line for the From: line if possible, and a host of
                   1872: other such trivialities.
                   1873: 
                   1874: D 3.41 81/09/29 14:59:00       eric    60      59      00000/00000/00003
                   1875: fix hash function computation for symbol table on 16-bit machines
                   1876: 
                   1877: D 3.40 81/09/28 19:17:29       eric    59      58      00000/00000/00003
                   1878: enable aliases to self-reference themselves correctly.
                   1879: 
                   1880: D 3.39 81/09/24 10:30:44       eric    58      56      00000/00000/00003
                   1881: changes to work under a V6 system -- mostly compilation flags
                   1882: 
                   1883: D 3.38.1.1     81/09/23 18:23:19       eric    57      56      00000/00000/00003
                   1884: break some configuration into conf.h -- simplifies makefile changes
                   1885: on different machines.  But there are still conditional libraries, so
                   1886: this may not be a good idea.....
                   1887: 
                   1888: D 3.38 81/09/23 09:52:23       eric    56      55      00000/00000/00003
                   1889: fix bug in file modes when mailing to files that didn't exist before;
                   1890: add an 'F' line to the .cf file that will read class entries from
                   1891: another file, given a scanf string to do the parsing.
                   1892: 
                   1893: D 3.37 81/09/22 13:24:25       eric    55      54      00000/00000/00003
                   1894: fix problem with using macros in rules; change configuration to send
                   1895: different flags when destined for arpanet vs. berknet hosts, etc.
                   1896: 
                   1897: D 3.36 81/09/22 11:33:29       eric    54      53      00000/00000/00003
                   1898: finally make suppression of sender in mailing lists work -- this version
                   1899: also works correctly on simple aliases.
                   1900: 
                   1901: D 3.35 81/09/21 18:49:53       eric    53      52      00000/00000/00003
                   1902: fix suppression of from address in mailing lists.
                   1903: 
                   1904: D 3.34 81/09/20 10:46:32       eric    52      51      00000/00000/00003
                   1905: don't let a mailer ever execute as root (that should solve the
                   1906: security problems!) -- essentially just map root into someone else.
                   1907: Adds yet another configuration variable (should this be in the .cf file?
                   1908: 
                   1909: D 3.33 81/09/16 20:04:26       eric    51      50      00000/00000/00003
                   1910: take underscore as well as space to separate parts of a person's
                   1911: full name.  Dot notation should be made to work someday also.
                   1912: 
                   1913: D 3.32 81/09/16 17:16:19       eric    50      49      00000/00000/00003
                   1914: have .forward ownership stick harder than :include: ownership:
                   1915: this prevents cretins from using writable root files for nastiness.
                   1916: all this is pointless if /usr/lib/aliases is writable though....
                   1917: 
                   1918: D 3.31 81/09/16 16:39:44       eric    49      48      00000/00000/00003
                   1919: be REALLY clever and inherit uid/gid from owner of :include:
                   1920: files also...   solves problem of alias to non-secure file
                   1921: 
                   1922: D 3.30 81/09/16 16:24:19       eric    48      47      00000/00000/00003
                   1923: last delta was too paranoid -- this increases the number of
                   1924: cases that work (but is still safe -- I hope)
                   1925: 
                   1926: D 3.29 81/09/16 16:08:08       eric    47      46      00000/00000/00003
                   1927: run as the user forwarding mail after a .forward operation;
                   1928: fix a bug in .forwarding that caused recursive expansion;
                   1929: restrict mail to programs, files, and with :include: for security
                   1930: reasons.
                   1931: 
                   1932: D 3.28 81/09/14 12:41:28       eric    46      45      00000/00000/00003
                   1933: check MAXATOM overflow; increase MAXATOM value
                   1934: 
                   1935: D 3.27 81/09/14 12:19:23       eric    45      44      00000/00000/00003
                   1936: fix but in mailers that only take one address at a time
                   1937: 
                   1938: D 3.26 81/09/12 17:34:05       eric    44      43      00000/00000/00003
                   1939: match on full name for local users
                   1940: 
                   1941: D 3.25 81/09/12 15:48:57       eric    43      42      00000/00000/00003
                   1942: change From: processing to reduce the number of Original-From:
                   1943: lines; change allocation of global variables.
                   1944: 
                   1945: D 3.24 81/09/07 14:12:48       eric    42      41      00000/00000/00003
                   1946: fix up umask; allow setuid on files to take recipient owner;
                   1947: factor some configuration info into conf.c
                   1948: 
                   1949: D 3.23 81/09/07 12:33:38       eric    41      40      00000/00000/00003
                   1950: add auto-rebuild on alias database; fix some aliasing bugs;
                   1951: add statistics to rebuild; slight code restructuring; change
                   1952: version handling one last (?) time
                   1953: 
                   1954: D 3.22 81/09/07 10:23:04       eric    40      39      00000/00000/00003
                   1955: add NOTUNIX compile flag to turn off UNIX "From " line processing
                   1956: 
                   1957: D 3.21 81/09/06 19:50:23       eric    39      38      00000/00000/00003
                   1958: cleanup, commenting, linting, etc.
                   1959: 
                   1960: D 3.20 81/09/06 14:23:20       eric    38      37      00000/00000/00003
                   1961: improve "version:" entry in makefile; fix -em (mail back errors) option
                   1962: 
                   1963: D 3.19 81/09/06 10:29:49       eric    37      36      00000/00000/00003
                   1964: fix $u argument processing bug (happened in uucp); .cf file cleanup
                   1965: 
                   1966: D 3.18 81/08/31 21:22:39       eric    36      35      00000/00000/00003
                   1967: collect mail statistics; minor configuration changes
                   1968: 
                   1969: D 3.17 81/08/31 12:11:57       eric    35      34      00000/00000/00003
                   1970: allow "error" as a net name to print error messages
                   1971: 
                   1972: D 3.16 81/08/29 19:16:24       eric    34      33      00000/00000/00003
                   1973: drop unnecessary H_FORCE bits in conf.c; delete H_DELETE
                   1974: (since H_ACHECK can be used with a zero mask field)
                   1975: 
                   1976: D 3.15 81/08/27 11:42:58       eric    33      32      00000/00000/00003
                   1977: on -t, use argument list as a supress list
                   1978: 
                   1979: D 3.14 81/08/25 16:06:37       eric    32      31      00000/00000/00003
                   1980: change handling of <LWSP> characters; remove special
                   1981: "at" processing (put it in .cf file)
                   1982: 
                   1983: D 3.13 81/08/24 14:05:39       eric    31      30      00000/00000/00003
                   1984: Add "-t" option to read To:, Cc:, and Bcc: lines to get recipients
                   1985: 
                   1986: D 3.12 81/08/23 12:08:53       eric    30      29      00000/00000/00003
                   1987: plug assorted security holes
                   1988: 
                   1989: D 3.11 81/08/22 17:52:06       eric    29      28      00000/00000/00003
                   1990: Arrange to pull full name out of From line if found; includes
                   1991: Original-From: hacking (oh so ugly).  There's got to be a better way
                   1992: to do this...
                   1993: 
                   1994: D 3.10 81/08/22 14:45:27       eric    28      27      00000/00000/00003
                   1995: fix UNIX From line parsing problem; add $b macro to get
                   1996: correct dates; fix mail-to-file problem; define basic macros
                   1997: before cracking arguments so that -D is more useful
                   1998: 
                   1999: D 3.9  81/08/21 18:51:33       eric    27      26      00000/00000/00003
                   2000: return transcript even if no message was collected
                   2001: 
                   2002: D 3.8  81/08/21 18:23:53       eric    26      25      00000/00000/00003
                   2003: drop M_FINAL, add $y=ttyname, rename some constants
                   2004: 
                   2005: D 3.7  81/08/20 15:19:50       eric    25      24      00000/00000/00003
                   2006: internal cleanup & minor improvements
                   2007: 
                   2008: D 3.6  81/08/18 11:40:37       eric    24      23      00000/00000/00003
                   2009: allow :include: specs
                   2010: 
                   2011: D 3.5  81/08/17 11:02:12       eric    23      22      00000/00000/00003
                   2012: implement hashing in symbol table and add more headers, from
                   2013: BB&N Report No. ICST/CBOS - 80/2, "Specification of a Draft Message
                   2014: Format Standard (Draft Report)", prepared for NBS.
                   2015: 
                   2016: D 3.4  81/08/09 19:08:25       eric    22      21      00000/00000/00003
                   2017: put mailer definitions into configuration file
                   2018: 
                   2019: D 3.3  81/03/28 11:52:37       eric    21      20      00003/00001/00000
                   2020: change format of Version to be suitable for internal use
                   2021: 
                   2022: D 3.2  81/03/20 09:45:43       eric    20      19      00001/00001/00000
                   2023: change name (again); from postbox to sendmail
                   2024: 
                   2025: D 3.1  81/03/07 14:27:18       eric    19      18      00001/00001/00000
                   2026: ----- delivermail ==> postbox -----
                   2027: 
                   2028: D 2.8  81/02/28 11:54:11       eric    18      17      00000/00000/00001
                   2029: install VAX mpx file logging
                   2030: 
                   2031: D 2.7  81/02/05 08:01:25       eric    17      16      00000/00000/00001
                   2032: always issued a delivermail error message regardless of M_QUIET
                   2033: 
                   2034: D 2.6  81/01/10 14:28:41       eric    16      15      00000/00000/00001
                   2035: include ArpaLocal; flush output on errors; allow
                   2036: "user" "at" "host" as separate parameters; etc.
                   2037: 
                   2038: D 2.5  81/01/08 23:57:31       eric    15      14      00000/00000/00001
                   2039: fixed botch in at => @ translation
                   2040: 
                   2041: D 2.4  81/01/08 19:37:22       eric    14      13      00000/00000/00001
                   2042: fixed several bugs in parser; translate <lwsp> into quoted .
                   2043: 
                   2044: D 2.3  80/12/06 17:33:32       eric    13      12      00000/00000/00001
                   2045: fix ^D botch in maketemp; allow "eric:eric,i.eric"
                   2046: 
                   2047: D 2.2  80/11/20 19:57:57       eric    12      11      00000/00000/00001
                   2048: make dates be taken as date sent rather than date delivered
                   2049: 
                   2050: D 2.1  80/11/05 11:00:06       eric    11      10      00000/00000/00001
                   2051: release 2
                   2052: 
                   2053: D 1.10 80/10/28 23:52:38       eric    10      9       00000/00000/00001
                   2054: fixed ANOTHER bug in aliasing (this is getting dull....)
                   2055: 
                   2056: D 1.9  80/10/27 19:28:30       eric    9       8       00000/00000/00001
                   2057: fix alias bug; count message sizes; map stderr->stdout; misc.
                   2058: 
                   2059: D 1.8  80/10/21 12:58:43       eric    8       7       00000/00000/00001
                   2060: install dbm stuff + fix quoting bugs
                   2061: 
                   2062: D 1.7  80/10/18 16:48:51       eric    7       6       00000/00000/00001
                   2063: cleanup for dbm stuff: Error => Errors; move local host
                   2064: detection into parse; misc cleanup
                   2065: 
                   2066: D 1.6  80/10/15 10:24:24       eric    6       5       00000/00000/00001
                   2067: deal with disk overflows
                   2068: 
                   2069: D 1.5  80/10/11 20:10:44       eric    5       4       00000/00000/00001
                   2070: fixed problem with sizeof MsgId == 0
                   2071: 
                   2072: D 1.4  80/10/11 18:55:35       eric    4       3       00000/00000/00001
                   2073: cleanup to simplify distribution
                   2074: 
                   2075: D 1.3  80/10/11 13:49:55       eric    3       2       00000/00000/00001
                   2076: accept multi-line fields in headers
                   2077: 
                   2078: D 1.2  80/10/11 13:37:53       eric    2       1       00000/00000/00001
                   2079: test
                   2080: 
                   2081: D 1.1  80/10/11 13:34:43       eric    1       0       00001/00000/00000
                   2082: 
                   2083: code versions:
                   2084: 
                   2085: alias.o
                   2086:        alias.c 5.16 (Berkeley) 7/14/88 (without DBM)
                   2087: arpadate.o
                   2088:        arpadate.c      5.9 (Berkeley) 6/30/88
                   2089: clock.o
                   2090: collect.o
                   2091: conf.o
                   2092:        conf.c  5.17 (Berkeley) 6/30/88
                   2093: convtime.o
                   2094: daemon.o
                   2095:        daemon.c        5.26 (Berkeley) 6/30/88 (with daemon mode)
                   2096: deliver.o
                   2097:        deliver.c       5.22 (Berkeley) 6/30/88
                   2098: domain.o
                   2099:        domain.c        5.15 (Berkeley) 6/30/88
                   2100: envelope.o
                   2101:        envelope.c      5.15 (Berkeley) 6/30/88
                   2102: err.o
                   2103:        err.c   5.9 (Berkeley) 6/30/88
                   2104: headers.o
                   2105:        headers.c       5.10 (Berkeley) 6/30/88
                   2106: macro.o
                   2107:        macro.c 5.5 (Berkeley) 6/30/88
                   2108: main.o
                   2109:        main.c  5.18 (Berkeley) 6/30/88
                   2110:        sendmail.h      5.12            6/30/88
                   2111: parseaddr.o
                   2112:        parseaddr.c     5.9 (Berkeley) 6/30/88
                   2113: queue.o
                   2114:        queue.c 5.24 (Berkeley) 6/30/88 (with queueing)
                   2115: readcf.o
                   2116:        readcf.c        5.13 (Berkeley) 6/30/88
                   2117: recipient.o
                   2118: savemail.o
                   2119:        savemail.c      5.9 (Berkeley) 6/30/88
                   2120: srvrsmtp.o
                   2121:        srvrsmtp.c      5.22 (Berkeley) 6/30/88 (with SMTP)
                   2122: stab.o
                   2123:        stab.c  5.5 (Berkeley) 6/30/88
                   2124: stats.o
                   2125:        stats.c 5.10 (Berkeley) 6/30/88
                   2126: sysexits.o
                   2127:        sysexits.c      5.5 (Berkeley) 6/30/88
                   2128: trace.o
                   2129: usersmtp.o
                   2130:        usersmtp.c      5.10 (Berkeley) 6/30/88 (with SMTP)
                   2131: util.o
                   2132:        util.c  5.9 (Berkeley) 12/17/86
                   2133: 
                   2134: # endif COMMENT

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.