/* ** Sendmail ** Copyright (c) 1983 Eric P. Allman ** Berkeley, California ** ** Copyright (c) 1983 Regents of the University of California. ** All rights reserved. The Berkeley software License Agreement ** specifies the terms and conditions for redistribution. */ #ifndef lint static char SccsId[] = "@(#)version.c 5.51 (Berkeley) 5/2/86"; #endif not lint char Version[] = "5.51"; # ifdef COMMENT SCCS/s.version.c: D 5.51 86/05/02 16:28:28 bloom 473 472 00000/00000/00015 statistics structure moved to its own header file so it may be used by aux/mailstats D 5.50 86/04/17 20:18:12 eric 472 471 00000/00000/00015 don't ignore aliasing during queue runs in conjunction with -bd D 5.49 86/04/02 16:02:31 eric 471 470 00000/00000/00015 don't run around clearing EF_FATALERRS -- this often applies to another address. Drop uid/gid check in sameaddr -- it causes more problems than it fixes. D 5.48 86/03/08 14:12:07 eric 470 469 00000/00000/00015 improve debugging in queue routines; don't output error addresses that are duplicates or otherwise marked as "don't send" D 5.47 86/03/08 09:28:15 eric 469 468 00000/00000/00015 do dbminit in a reasonable place D 5.46 86/03/02 14:07:11 eric 468 467 00000/00000/00015 always ignore SIGCHLD in openmailer; get SccsId correct in alias.c D 5.45 86/01/30 11:02:58 eric 467 466 00000/00000/00015 fix .forward files that include yourself; this was a bug in sameaddr that may have caused some other problems D 5.44 86/01/11 00:18:27 eric 466 465 00000/00000/00015 only check the RHS of aliases during newalias if the "n" option is set; this option should probably be set if you are not running the nameserver D 5.43 86/01/10 16:34:08 eric 465 464 00000/00000/00015 adjust WkTimeFact so that -q1h will lower relative priorities of jobs over long periods, rather than leave them toward the top of the queue D 5.42 86/01/10 15:49:40 eric 464 463 00000/00000/00015 allow multiple words per line in file classes; require a SCANF compilation flag to use sscanf in F specs in order to reduce image size D 5.41 86/01/09 15:19:09 eric 463 462 00000/00000/00015 apparently European timezones were wrong; thanks to Piet Beertema for this one D 5.40 86/01/09 14:38:45 eric 462 461 00000/00000/00015 allow underscores in login names D 5.39 86/01/05 18:49:01 eric 461 460 00000/00000/00015 rewrite reply-to and resent-reply-to; save errorqueueu in qf file; some performance hacking; some alias handling cleanup; delete leading spaces from SMTP lines D 5.38 85/12/17 23:54:45 eric 460 459 00000/00000/00015 lint D 5.37 85/12/17 21:35:28 eric 459 458 00000/00000/00015 patch to clearenvelope to avoid dereferencing garbage pointers D 5.36 85/12/09 10:29:07 miriam 458 457 00000/00000/00015 Modify maphostname to do a gethostbyaddr if first character in name is a bracket. D 5.35 85/12/07 08:17:56 eric 457 456 00000/00000/00015 several small bugs: don't die if no environment, don't look in ESM_DEADLETTER state in savemail; lowercase before getpwnam to allow upper case regular names in alias file D 5.34 85/11/22 11:38:09 miriam 456 455 00000/00000/00015 Distinguish between temporary failure types. Now will print the message "Host Name Lookup Failure" when h_errno contains TRY_AGAIN error value. D 5.33 85/11/22 08:27:48 eric 455 454 00000/00000/00015 give error if alias file cannot be opened; log a message when aliases are rebuilt; consider addresses with different q_uid's different so that two recipients forwarding to the same program will work D 5.32 85/11/21 18:49:02 eric 454 453 00000/00000/00015 don't duplicate original envelope into error envelope D 5.31 85/10/24 10:38:28 eric 453 452 00000/00000/00015 don't create a queue name in syserr; permit trailing blanks and quoted commas in aliases. D 5.30 85/10/19 09:55:01 eric 452 451 00000/00000/00015 strip spaces from ends of alias addresses so that blanks at end of line works D 5.29 85/10/13 15:03:36 eric 451 450 00000/00000/00015 fix botch with reapchild getting queue runs before intended wait D 5.28 85/09/30 21:34:39 eric 450 449 00000/00000/00015 clean up some aspects of error message display D 5.27 85/09/30 21:06:04 eric 449 448 00000/00000/00015 fixes in setproctitle to avoid problems with titles longer than argv + env D 5.26 85/09/25 11:02:19 eric 448 447 00000/00000/00015 DO use Ruleset 4 when defining $f -- it's very necessary (fix for <> will have to be done in configuration); pretty up mailq -v slightly D 5.25 85/09/24 15:49:04 eric 447 446 00000/00000/00015 clean up queue output somewhat (push null jobs to end); set SO_REUSEADDR and SO_KEEPALIVE on daemon sockets in the hopes of making dead connections disappear faster D 5.24 85/09/24 15:09:56 eric 446 445 00000/00000/00015 don't step on user environment D 5.23 85/09/23 21:19:05 eric 445 444 00000/00000/00015 deliver directly in SMTP if VERB command has been issued; don't externalize name using ruleset 4 when defining $f macro: this turns "<>" into "", which confuses local mail D 5.22 85/09/21 16:35:33 eric 444 443 00000/00000/00015 yet more cleanup to the process title code D 5.21 85/09/21 16:24:06 eric 443 442 00000/00000/00015 don't include ctime as part of priority, since the value affects the results of shouldqueue; we go back to adding ctime into the workcmpf in queue.c D 5.20 85/09/21 15:52:02 eric 442 441 00000/00000/00015 change sign on WkTimeFact so that is closer to what most people want D 5.19 85/09/21 15:01:31 eric 441 440 00000/00000/00015 fix silly botch in SMTP command decoding D 5.18 85/09/21 14:45:53 eric 440 439 00000/00000/00015 clean up priority handling, making several of the parameters configurable: y - WkRecipFact, z - WkClassFact, Z - WkTimeFact, Y - ForkQueueRuns; improve process title labelling; finish "errors to postmaster" option D 5.17 85/09/21 10:31:27 eric 439 438 00000/00000/00015 add -v mode to mailq to print priorities as well (this should be extended in the future); fix some problems in the savemail state machine. D 5.16 85/09/20 09:43:20 eric 438 437 00000/00000/00015 print cute labels on programs communicating with SMTP D 5.15 85/09/19 23:16:24 eric 437 436 00000/00000/00015 label child processes more effectively D 5.14 85/09/19 22:01:02 eric 436 435 00000/00000/00015 use rename instead of link/unlink D 5.13 85/09/19 17:43:16 eric 435 434 00000/00000/00015 fix botch in clearenvelope D 5.12 85/09/19 15:57:48 eric 434 433 00000/00000/00015 updates to make it possible to run the queue in one process; this permits a database of host status to be built D 5.11 85/09/19 13:41:13 eric 433 432 00000/00000/00015 lint D 5.10 85/09/19 01:25:45 eric 432 431 00000/00000/00015 incorporate SMI changes -- still experimental D 5.9 85/09/17 21:46:27 eric 431 430 00000/00000/00015 use SIGCHLD to catch processes as suggested by Serge Granik D 5.8 85/09/17 19:24:39 eric 430 429 00000/00000/00015 facilities in syslog D 5.7 85/09/03 20:08:54 eric 429 428 00000/00000/00015 increase MAXNAME and MAXLINE, as requested by Rick Adams, via George Goble, via Kirk Smith, via Miriam Amos (why????) D 5.6 85/09/03 19:50:17 eric 428 427 00000/00000/00015 Wander WIZ from weariful DEBUG to wonderful WIZ woption D 5.5 85/06/17 18:53:09 eric 427 426 00000/00000/00015 From Bill Nowicki: fixes to the statistics D 5.4 85/06/16 16:04:51 eric 426 425 00000/00000/00015 arrange for a useful error message if the mailer fork fails D 5.3 85/06/15 18:52:11 eric 425 424 00000/00000/00015 fix overzealous removal of df file D 5.2 85/06/08 10:30:59 eric 424 423 00000/00000/00015 lint for 4.3 release D 5.1 85/06/07 15:19:18 dist 423 422 00013/00003/00002 Add copyright D 4.56 85/06/02 10:54:52 eric 422 421 00000/00000/00005 plug another security hole with command line arguments D 4.55 85/06/01 15:26:40 eric 421 420 00000/00000/00005 More changes from Bill Nowicki -- file closing and improved logging. D 4.54 85/05/24 11:00:43 eric 420 419 00000/00000/00005 Changes from Bill Nowicki and Jay Lepreau : Fix "bad file number" problem; improve error reporting; try to keep messages closer to their original order. Also, drop "safe" mode in readcf since we never run setuid when -C is specified. D 4.53 85/05/15 20:26:44 eric 419 418 00000/00000/00005 reenable signals in an event that may be called to run the queue; this allows hung connections to time out properly during a queue run. This fix provided by Bill Nowicki. D 4.52 85/05/06 20:06:04 eric 418 417 00000/00000/00005 check syscall return values in a few questions; thanks go to Ian Darwin's rudely public ragging on this one. D 4.51 85/04/29 22:48:37 eric 417 416 00000/00000/00005 lock alias file while rebuilding if flock system call available D 4.50 85/04/28 10:46:11 eric 416 415 00000/00000/00005 stop collecting message on ferror(InChannel); changes to compile even if DEBUG isn't defined; avoid sending nonstandard 050 messages unless requested; recover from trashed DBM files; use recipient rewriting set on user part after ruleset 0 completes D 4.49 85/04/25 20:06:08 miriam 415 414 00000/00000/00005 Remove lib/libsys.a references - not used anymore. D 4.48 85/04/20 15:14:15 eric 414 413 00000/00000/00005 don't assume that all apparently local senders have passwd entries D 4.47 85/04/04 17:48:45 miriam 413 412 00000/00000/00005 Change serverity of LOG_ERR to LOG_MAIL so syslog will place in appropriate log file. D 4.46 85/02/15 09:28:10 eric 412 411 00000/00000/00005 fix some bugs with -C flag; one with queuing from Teus D 4.45 85/02/14 22:43:42 eric 411 410 00000/00000/00005 "and" file mode bits with 0777 D 4.44 84/12/06 10:35:01 eric 410 409 00000/00000/00005 back out attempt to use flock in the queue -- we don't in gerneral have an open file descriptor available. D 4.43 84/12/05 23:16:18 eric 409 408 00000/00000/00005 Try to use flock call (this doesn't work because we don't always have an open fd); security and performance fixes from Kirk Smith at Purdue; "a" option is now the number of minutes to wait for "@:@" alias; fix bug in $[ $] using -t; random cleanup D 4.42 84/11/13 12:46:05 eric 408 407 00000/00000/00005 assorted optimizations (no functional changes) D 4.41 84/09/18 19:53:05 eric 407 406 00000/00000/00005 fix multiline aliases D 4.40 84/09/08 17:44:21 eric 406 405 00000/00000/00005 fix hostname mapping to be repeatable (as required by some .cf files). D 4.39 84/08/11 23:19:30 eric 405 404 00000/00000/00005 Add $[ and $] as RHS operators to look up the contents and pass them to maphostname; maphostname currently looks them up in /etc/hosts and converts them to canonical form, but could be turned into a general name server..... huzzah!! D 4.38 84/08/11 17:56:24 eric 404 403 00000/00000/00005 changes from Tom Ferrin : don't drop messages on the floor if no local mailer available; give real "errno" message in syserr. D 4.37 84/08/11 17:50:27 eric 403 402 00000/00000/00005 Assorted changes from Guy Harris : mostly lint & USG D 4.36 84/08/11 16:57:17 eric 402 401 00000/00000/00005 don't add ".ARPA" (or whatever net name) to names that already have a dot in them; pull NetName out of initialized data space so that it can be changed in frozen configuration files D 4.35 84/08/11 16:54:59 eric 401 400 00000/00000/00005 Changes from Greg Couch for V7 compatibility and miscellaneous bug fixes; "clear" => "bzero" and "bmove" => "bcopy" throughout for consistency; bzero is now in bcopy.c (these are supplied by libc on 4.2bsd) D 4.34 84/08/11 14:38:46 eric 400 399 00000/00000/00005 fixes from Liudvikas Bukys : allow -M flag to be used more than once; handle hosts where "gethostname" does not return the canonical name. D 4.33 84/08/11 13:23:32 eric 399 398 00000/00000/00005 add E mailer flag to > escape From lines (for files) D 4.32 84/08/05 11:01:18 eric 398 397 00000/00000/00005 add B option to set blank substitution character D 4.31 84/08/05 10:14:14 eric 397 396 00000/00000/00005 alway reset uid and gid immediately if alternate config file D 4.30 84/05/13 15:45:35 eric 396 395 00000/00000/00005 remove .mailcf hack -- it's been abused. D 4.29 84/05/13 14:03:01 eric 395 394 00000/00000/00005 change "returnto" to "returnq" for PDP-11 compilers D 4.28 84/03/17 16:26:58 eric 394 393 00000/00000/00005 always fold case on host names; fold case on the LHS of aliases D 4.27 84/03/11 21:21:31 eric 393 392 00000/00000/00005 fix argument to gethostname left over from some old interface.... D 4.26 84/03/11 19:58:20 eric 392 391 00000/00000/00005 disable UPPER->lower case mapping in RHS's of aliases so that upper case letters can be used in file names and as args to programs. D 4.25 84/03/11 16:49:25 eric 391 390 00000/00000/00005 changes from Bill Nowicki to avoid sending errors if a connection is aborted; changes from Greg Katz to help with PDP-11 versions; allow home network name to be changed; change macro expansion character from $ to \001 so that $'s can be used in headers (.cf unchanged). D 4.24 83/12/27 22:52:50 eric 390 389 00000/00000/00005 don't close files immediately before exec of mailer so that we can log; use FIOCLEX instead. Suggested by Tom Ferrin, UCSF CGL. D 4.23 83/12/27 21:21:47 eric 389 388 00000/00000/00005 fix bug with un-DBM'ed alias files that adds a newline on the end of the last entry in the alias; found by John Gilmore, SMI D 4.22 83/11/26 18:52:55 eric 388 387 00000/00000/00005 fix SERIOUS bug allowing anyone to be "wiz" without a password if the configuration was frozen D 4.21 83/11/13 18:08:19 eric 387 386 00000/00000/00005 Fixes two nasty problems, both pointed out by Bill Nowicki at Stanford: I/O errors on input in collect would cause infinite loops, and a protocol error (or other error that would call smtpquit abnormally) would cause core dumps D 4.20 83/11/10 09:05:46 eric 386 385 00000/00000/00005 Be able to override the hostname in the configuration file when frozen D 4.19 83/10/29 16:46:12 eric 385 384 00000/00000/00005 declare getpwnam in recipient.c for earlier systems D 4.18 83/10/29 12:01:44 eric 384 383 00000/00000/00005 add newline to "deferred" message in usersmtp.c D 4.17 83/10/23 17:16:56 eric 383 382 00000/00000/00005 handle dollar signs in headers properly D 4.16 83/10/16 16:08:08 eric 382 381 00000/00000/00005 Postpone opening the alias DBM file until after the fork in srvrsmtp so that the alias database is as current as possible; thanks to dagobah!efo (Eben Ostby) for this one. D 4.15 83/10/16 15:26:12 eric 381 380 00000/00000/00005 reset errno in parseaddr so that syserr gives a permanent error code and no extraneous information about non-errors D 4.14 83/10/02 15:31:56 eric 380 379 00000/00000/00005 Use old environment after the thaw; credit rhc for this. D 4.13 83/10/01 16:57:57 eric 379 378 00000/00000/00005 clean up error handling in general; make sure that something gets logged in the transcript if the connection cannot be established; clean up Teus Hagen's mod to arpadate.c to match the sendmail coding style. D 4.12 83/09/07 09:45:41 eric 378 377 00000/00000/00005 Increase timeout for greeting message to five minutes; remember to close the connection properly if we get a failure during connection establishment. D 4.11 83/09/05 15:02:48 eric 377 376 00000/00000/00005 Fix security hole caused by being able to freeze the configuration without owning the .fc file. D 4.10 83/09/05 14:33:54 eric 376 375 00000/00000/00005 Cut down the amount of bulk that is sent in SMTP error messages, by trying to log only real errors in the transcript. -v mode is unchanged. D 4.9 83/08/31 17:42:50 eric 375 374 00000/00000/00005 fix problem with timeouts caused by change in EINTR semantics in 4.2bsd; add a two minute timeout on the greeting message in user smtp to detect hung connections D 4.8 83/08/28 15:38:15 eric 374 373 00000/00000/00005 set FIOCLEX on /dev/kmem file when getting load average D 4.7 83/08/28 14:45:35 eric 373 372 00000/00000/00005 Refuse to talk to yourself (i.e., reject HELO packets with your own name). Add two thresholds -- option 'x' is the load average at which messages are queued rather than delivered (default 12); option 'X' is the load average at which incoming TCP connections are refused (default 25). D 4.6 83/08/21 15:40:13 eric 372 371 00000/00000/00005 Drop "Sender:" hack, since it doesn't work properly when relaying messages. D 4.5 83/08/21 15:15:09 eric 371 370 00000/00000/00005 Insert a Sender: line if a From: line is specified and is different than what we would insert; don't send back a separate error message if we have diagnosed an error in a RCPT command; fix a *0 problem in some debug code. D 4.4 83/08/06 10:37:57 eric 370 369 00000/00000/00005 Clear errno before trying connect in an attempt to track down EPERM problems. D 4.3 83/07/31 10:46:22 eric 369 368 00000/00000/00005 Add EX_NOPERM to sysexits.h for kre D 4.2 83/07/27 22:56:44 eric 368 367 00000/00000/00005 Don't uppercase hostname in myhostname so that it can be used as a UUCP name. D 4.1 83/07/25 19:46:27 eric 367 366 00000/00000/00005 4.2 release version D 3.347 83/07/13 10:38:17 eric 366 365 00000/00000/00005 Delete "load limiting" for SMTP connections (a bad ethernet board can hang up all incoming mail); use sfgets in collect (same reason); check for I/O error in collect (from Bill Nowicki); switch date format to RFC822 style. D 3.346 83/06/14 11:05:18 eric 365 364 00000/00000/00005 log the message-id only if non-null D 3.345 83/06/11 20:59:30 eric 364 363 00000/00000/00005 %d => %ld in mailq for PDP-11's D 3.344 83/06/11 19:28:58 eric 363 362 00000/00000/00005 MRs: 045 MRs: 240 don't rearrange input header lines; force Received: lines to be at the beginning by always adding new header fields at the end of the header. D 3.343 83/05/21 11:01:51 eric 362 361 00000/00000/00005 Miscellaneous changes for PDP-11's. Always send to a login name before a full name. D 3.342 83/05/20 11:50:16 eric 361 360 00000/00000/00005 MRs: 238 MRs: 239 Don't stack processes when VRFY fails. Give an error message on multiple RCPT commands with a bad address. D 3.341 83/05/18 11:57:09 eric 360 359 00000/00000/00005 Change WKTIMEFACT to be negative to force failing jobs to the end of the queue rather than to the beginning, giving better overall performance -- as noted by Jay Lepreau. Also, clean up the format of the mailq output. D 3.340 83/05/07 11:28:37 eric 359 358 00000/00000/00005 MRs: 237 Pass the size of the buffer to myhostname. D 3.339 83/05/04 11:29:53 eric 358 357 00000/00000/00005 MRs: 235 fix botch in 3.338 -- arguments reversed D 3.338 83/05/04 11:16:29 eric 357 356 00000/00000/00005 MRs: 235 Don't send domain-based UUCP addresses to UGLYUUCP hosts D 3.337 83/05/01 14:27:55 eric 356 355 00000/00000/00005 MRs: 234 avoid core dumps on messages with very long header fields D 3.336 83/04/30 15:14:51 eric 355 354 00000/00000/00005 lint D 3.335 83/04/23 12:54:57 eric 354 353 00000/00000/00005 MRs: 230 Don't put Resent-*: lines in queue file to prevent outputing them inappropriately in the sent message. D 3.334 83/04/19 19:20:44 eric 353 352 00000/00000/00005 MRs: 228 Fix bug causing convtime to loop forever on "w" (week) specification. D 3.333 83/04/17 17:19:04 eric 352 351 00000/00000/00005 MRs: 199 MRs: 218 MRs: 221 MRs: 224 put true current time on SMTP greeting message; drop >From hack (this belongs in the mailer if needed); fix bogus errno problems (clear errno in many places); fix *(0) problems D 3.332 83/03/26 14:26:43 eric 351 350 00000/00000/00005 MRs: 213 MRs: 214 MRs: 215 increase buffer size in smtpmessage to avoid overflows; rewrite again with ruleset three after appending from domain so that we can add the bracket punctuation; changes from MRH for USG UNIX 5.0 D 3.331 83/03/19 14:25:33 eric 350 349 00000/00000/00005 MRs: 211 Don't have mail from su'ed people come from "daemon" D 3.330 83/03/19 13:14:27 eric 349 348 00000/00000/00005 MRs: 147 Fix botch of putting incorrect full names on some addresses (usually UNIX-to-UNIX Copy) D 3.329 83/03/12 18:05:51 eric 348 347 00000/00000/00005 MRs: 196 take ECONNRESET (Connection reset by peer) as a temporary error during connection initiation. D 3.328 83/03/12 17:41:55 eric 347 346 00000/00000/00005 MRs: 208 Check for I/O error on close of temp file -- i.e., last buffer flush D 3.327 83/03/12 15:40:05 eric 346 345 00000/00000/00005 MRs: 207 Don't artifically add a "from: $q" when running the queue -- this seems to cause the from line in the qf file to be ignored. D 3.326 83/03/10 00:48:02 eric 345 344 00000/00000/00005 MRs: 206 Delete colon on front of aliases D 3.325 83/03/08 19:22:48 eric 344 343 00000/00000/00005 MRs: 205 Pass the delimiter character to parseaddr so that we can correctly decide between comma and space D 3.324 83/03/07 09:55:13 eric 343 342 00000/00000/00005 MRs: 203 Don't pass EX_TEMPFAIL code out (since we have already taken responsibility for delivering the message anyway). D 3.323 83/03/07 09:25:01 eric 342 341 00000/00000/00005 MRs: 202 Handle OLDSTYLE addresses properly with the -t flag; notice that tabs also delimit addresses (as well as spaces) D 3.322 83/03/06 16:30:29 eric 341 340 00000/00000/00005 MRs: 201 Handle messages with "Resent-xxx:" header lines properly (basically mark the message as being resent); ignore incoming From: lines if their text exactly matches our machine-readable address exactly -- this causes the full name to be added when called from (e.g.) MH. Both of these mode are to improve interaction with MH. D 3.321 83/03/05 17:39:11 eric 340 339 00000/00000/00005 MRs: 200 Ignore delimiters (e.g., commas) inside quotes D 3.320 83/02/26 15:32:31 eric 339 338 00000/00000/00005 MRs: 193 Don't log message-id mapping and from person in a queue run D 3.319 83/02/26 15:06:05 eric 338 337 00000/00000/00005 MRs: 162 map host name for $w macro to upper case -- this is more conventional D 3.318 83/02/26 11:51:43 eric 337 336 00000/00000/00005 MRs: 193 log queueid <=> message-id correspondence D 3.317 83/02/25 21:20:20 eric 336 335 00000/00000/00005 MRs: 181 More attempts at insuring that everything goes through ruleset 4 D 3.316 83/02/24 20:03:04 eric 335 334 00000/00000/00005 MRs: 181 arrange to cleanup addresses using ruleset 4 before storing in ADDR struct D 3.315 83/02/24 18:55:32 eric 334 333 00000/00000/00005 MRs: 162 MRs: 192 Fix bug in $w and $=w setup; truncate output to seven bits if the "limits" flag is set to insure that nothing can be sent that looks like TELNET protocol D 3.314 83/02/20 12:29:15 eric 333 332 00000/00000/00005 MRs: 190 Avoid loops in the auto-closedown code D 3.313 83/02/19 14:42:12 eric 332 331 00000/00000/00005 MRs: 188 Avoid core dumps on very long addresses in headers. D 3.312 83/02/18 13:11:57 eric 331 330 00000/00000/00005 MRs: 183 Improve host verification -- put something in even if no HELO command given D 3.311 83/02/18 12:44:13 eric 330 329 00000/00000/00005 MRs: 183 MRs: 185 MRs: 187 Add HELO hostname verification; give an error if a message terminates with EOF rather than dot in SMTP mode; put in a catch for "Not owner" error on connect -- see if we can find anything funny. D 3.310 83/02/13 16:23:03 eric 329 328 00000/00000/00005 MRs: 182 fix clrbitmap to really clear the entire bitmap D 3.309 83/02/10 10:00:49 eric 328 327 00000/00000/00005 MRs: 176 avoid core dump on return receipt processing; clean up return receipt message. D 3.308 83/02/08 10:50:24 eric 327 326 00000/00000/00005 MRs: 167 MRs: 172 MRs: 173 MRs: 174 clean up problems when QUEUE compile flag not defined; clean up hostname code to run on non-4.1c systems; fix use of -oeq (quiet on errors) flag. D 3.307 83/02/03 10:46:02 eric 326 325 00001/00001/00004 MRs: 160 Change version stamp to have no date (so that it looks nice as $v/$V) D 3.306 83/02/03 10:29:15 eric 325 324 00000/00000/00005 MRs: 160 $e macro is now SMTP entry message (so that configuration version can be included). D 3.305 83/02/03 07:54:10 eric 324 323 00000/00000/00005 MRs: 168 Make mailer size limits a per-mailer parameter (M field in the mailer descriptor) D 3.304 83/02/02 12:53:10 eric 323 322 00000/00000/00005 MRs: 165 implement classes and mailer flags as a bit map; define new class 'w' as the set of all hosts we are known by D 3.303 83/02/01 20:47:34 eric 322 321 00000/00000/00005 MRs: 166 don't call printqueue() if queueing is turned off D 3.302 83/01/18 20:38:09 eric 321 320 00000/00000/00005 pause() after reply error if 18.100 set -- so that Sam can try to track down the state of the connection in the CMU-CS-A problem. D 3.301 83/01/17 21:41:42 eric 320 319 00000/00000/00005 MRs: 158 Set the $w macro to the hostname if at all possible to allow generic configuration tables. D 3.300 83/01/17 12:31:10 eric 319 318 00000/00000/00005 MRs: 155 fix bug that caused "\r\n" string in TCP mailer definition to turn into something else -- causing all TCP connections to hang. D 3.299 83/01/17 09:32:18 eric 318 317 00000/00000/00005 MRs: 154 define a newline in "nullmailer" so that queue files get written with newlines between the "H" lines. D 3.298 83/01/16 22:08:47 eric 317 316 00000/00000/00005 put in socket debugging on a debug flag to help Sam find the CMU-CS-A problem -- this probably won't work with early 4.1c systems. D 3.297 83/01/16 17:24:29 eric 316 315 00000/00000/00005 MRs: 153 make the maximum number of simultaneous SMTP connections an option D 3.296 83/01/16 13:14:04 eric 315 314 00000/00000/00005 MRs: 152 Change mailer spec to have labelled fields for future expansion. **** This delta invalidates previous configuration files **** D 3.295 83/01/15 17:40:49 eric 314 313 00000/00000/00005 MRs: 149 be sure everything gets appropriately externalized; canonname goes away, since everything is now done by remotename D 3.294 83/01/12 08:56:51 eric 313 312 00000/00000/00005 MRs: 144 fix date format to be truly RFC822 D 3.293 83/01/09 15:43:11 eric 312 311 00000/00000/00005 MRs: 139 fix CRLF problem when sending SMTP commands; make newstr() and crlf() into macros D 3.292 83/01/08 19:54:37 eric 311 310 00000/00000/00005 MRs: 143 release daemon resources when running the queue D 3.291 83/01/08 13:49:08 eric 310 309 00000/00000/00005 MRs: 142 be sure to open a new transcript on every queue run; when returning an SMTP transcript, only send the last half (i.e., that part which describes the sending half). D 3.290 83/01/06 18:21:54 eric 309 308 00000/00000/00005 MRs: 141 allow user-setable error codes in "error" mailer D 3.289 83/01/06 18:09:01 eric 308 307 00000/00000/00005 MRs: 140 fix a botch in argument processing such that it used the last flag as a recipient if there were no other recipients (e.g., with "-t") D 3.288 83/01/06 12:05:54 eric 307 306 00000/00000/00005 MRs: 132 fix (one more time!) long line wrapping..... D 3.287 83/01/06 10:46:17 eric 306 305 00000/00000/00005 MRs: 139 split up FULLSMTP flag -- now have "X" (M_XDOT, use hidden dot algorithm), "p" (M_FROMPATH, use reverse-path in MAIL FROM:<> command), and "L" (M_LIMITS, enforce SMTP line limits). I would like to change the format of the mail defn one more time to make named fields so that it would be more extensible. D 3.286 83/01/05 20:30:10 eric 305 304 00000/00000/00005 MRs: 132 fix folded line output D 3.285 83/01/05 17:57:11 eric 304 303 00000/00000/00005 MRs: 138 curiouser and curiouser..... a read error on the reply from a QUIT will cause another QUIT command, and thus an fclose(NULL). Some sites seem to be sending a 421 Shutting down and then closing without waiting for the QUIT, so this happens.... D 3.284 83/01/05 10:19:04 eric 303 302 00000/00000/00005 MRs: 138 improve error recovery for bizarre SMTP cases; unfortunately CMU has decided to start working again, so the strangest parts are untested. D 3.283 83/01/04 19:53:55 eric 302 301 00000/00000/00005 MRs: 137 externalize $g macro using ruleset 4 also D 3.282 83/01/04 18:52:08 eric 301 300 00000/00000/00005 MRs: 136 Don't try to drop our controlling TTY except when we are starting up a daemon; this can cause UUCP jobs to hang waiting for carrier on a dialin line (completely contrary to the intent). Many thanks to Keith Sklower for pointing this one out. However, that damned parameter to disconnect() has reappeared! D 3.281 83/01/04 17:45:25 eric 300 299 00000/00000/00005 MRs: 135 Ignore SIGPIPE early (in main rather than in deliver) so that rude hosts that close the connection early don't cause us to die -- in particular, CMU-CS-A (nee CMU-10A) was doing this after the DATA command; the problem went away quite mysteriously, so I have no idea why it happened D 3.280 83/01/04 13:10:35 eric 299 298 00000/00000/00005 MRs: 129 MRs: 134 take EHOSTDOWN as a temporary failure; change the format of "deferred" message to be consistent with other messages. D 3.279 83/01/04 10:58:55 eric 298 297 00000/00000/00005 MRs: 133 fix botch that causes sendmail to core dump when there are large numbers of requests D 3.278 83/01/04 10:04:41 eric 297 296 00000/00000/00005 MRs: 132 Detect an internal error that seems to be occuring D 3.277 83/01/03 18:01:33 eric 296 295 00000/00000/00005 MRs: 129 give more useful error messages (including the errno that caused a temporary failure); reflect these messages out to mailq D 3.276 83/01/03 14:02:28 eric 295 294 00000/00000/00005 MRs: 137 have canonname pass the address through ruleset four also D 3.275 83/01/03 13:44:39 eric 294 293 00000/00000/00005 MRs: 131 take ENETUNREACH (Network unreachable) as a transient error -- this probably isn't usually right, but it seem safer in the long run.... D 3.274 83/01/03 13:19:37 eric 293 292 00000/00000/00005 MRs: 129 print "request" instead of "requests" if there is only one request D 3.273 83/01/03 13:03:01 eric 292 291 00000/00000/00005 MRs: 130 fix bug in commaize so that it won't core dump on every message (sigh); process timeouts like normal errors so that they will get delivered to the correct address (i.e., the Errors-To: address). D 3.272 83/01/03 11:28:04 eric 291 290 00000/00000/00005 MRs: 129 fix botch in reading the queue that caused it to throw away the last entry it read -- this was particulary obvious with only one entry in the queue. D 3.271 83/01/02 15:33:36 eric 290 289 00000/00000/00005 MRs: 124 Take errno 65, "Host is unreachable", to be a recoverable error D 3.270 83/01/02 14:27:32 eric 289 288 00000/00000/00005 MRs: 129 clean up output of mailq mode D 3.269 83/01/01 21:25:35 eric 288 287 00000/00000/00005 MRs: 123 Put CRLF on all lines in user SMTP. Pass this info down to innumerable routines. D 3.268 83/01/01 18:14:56 eric 287 286 00000/00000/00005 MRs: 122 Use a more resilient algorithm to handle the special case of an SMTP connection that is going down spontaneously (with a 421 reply code) D 3.267 83/01/01 16:02:43 eric 286 285 00000/00000/00005 MRs: 128 tag syserr's specially in the log so they can be grep'ed out easily D 3.266 82/12/30 17:30:57 eric 285 284 00000/00000/00005 MRs: 114 don't bother timing out on *.cf and qf* file reads -- they are really very vanilla D 3.265 82/12/30 16:57:13 eric 284 283 00000/00000/00005 MRs: 113 close files 3 through 20 before startup to insure sufficient resources D 3.264 82/12/29 17:39:27 eric 283 282 00000/00000/00005 MRs: 112 don't htons(sp->s_port) in makeconnection D 3.263 82/12/24 08:14:55 eric 282 281 00000/00000/00005 MRs: 108 Change parse to parseaddr for BB&N TCP/IP implementation; clean up comments in daemon.c to simplify the poor alternate protocol type. D 3.262 82/12/14 19:23:23 eric 281 280 00000/00000/00005 MRs: 106 fix freeze mode to do something more interesting that refreezing (over and over and over and .......) D 3.261 82/12/14 16:57:16 eric 280 279 00000/00000/00005 MRs: 105 Add "print mail queue" mode (-bp flag or call as "mailq") D 3.260 82/12/13 18:25:22 eric 279 278 00000/00000/00005 MRs: 085 The routine "sendto" is now a system call (yeuch!); change our sendto to "sendtolist" D 3.259 82/12/13 17:47:27 eric 278 277 00000/00000/00005 MRs: 085 NEW-IPC: convert to 4.1c D 3.258 82/12/09 19:18:32 eric 277 276 00000/00000/00005 MRs: 036 MRs: 053 MRs: 064 Fix a bug triggered when we add the sender's "@domain" to an address in the message body that is missing a domain -- we forgot to null terminate the list. D 3.257 82/12/09 11:19:09 eric 276 275 00000/00000/00005 MRs: 081 MRs: 095 MRs: 103 log read timeouts as syserrs; be able to match the inverse of a class using the $~x syntax; don't add a full name during network forward operations D 3.256 82/12/05 13:46:29 eric 275 274 00000/00000/00005 MRs: 092 Clear the envelope in the child in server SMTP to insure that our oh so helpful parent doesn't delete our transcript; move the transcript and temporary file pointers into the envelope; pass the envelope to other routines in the holy war against global variables; split off envelope routines from main.c to envelope.c D 3.255 82/11/28 16:00:50 eric 274 273 00000/00000/00005 implement SMTP auto-shutdown on 421 codes; clean up some error processing items, particularly in SMTP; don't reinstantiate error message bodies after queueing; other minor changes. This is all cleanup from 3.253. D 3.254 82/11/28 10:22:20 eric 273 272 00000/00000/00005 fix a number of problems left over from yesterday's delta. The big triumph is being able to delete the parameter from disconnect(). D 3.253 82/11/28 00:22:21 eric 272 271 00000/00000/00005 Many changes resulting from a complete code readthrough. Most of these fix minor bugs or change the internal structure for clarity, etc. There should be almost no externally visible changes (other than some cleaner error message printouts and the like). D 3.252 82/11/24 18:44:28 eric 271 270 00000/00000/00005 lint it D 3.251 82/11/24 17:15:30 eric 270 269 00000/00000/00005 MRs: 026 run SMTP jobs in a subprocess so that multiple jobs will work. This delta also changes the envelope data structure so that flags are in a bit map, and adjusts some of the semantics. The transcript is now local to an envelope. A bunch of old code is deleted. A serious bug was fixed in the "run in background" code. Etc., etc. D 3.250 82/11/21 17:19:05 eric 269 268 00000/00000/00005 MRs: 026 preliminary hacks for multiple SMTP transactions per connection: make assignment of multiple queue id's more efficient, make prefixes two characters (e.g., qfAA99999), pass the file name to freeze and thaw, add a mailer flag saying we are talking to one of our own kind. D 3.249 82/11/20 12:43:29 eric 268 267 00000/00000/00005 MRs: 083 Accept user@[net.host.logical.imp] syntax D 3.248 82/11/18 21:33:38 eric 267 266 00000/00000/00005 MRs: 080 Correctly run "sendmail -q" (had a reversed condition on QueueIntvl) D 3.247 82/11/18 17:54:23 eric 266 265 00000/00000/00005 MRs: 079 Fix bug causing loops in sendto if there are scanner errors in addresses D 3.246 82/11/18 08:56:27 eric 265 264 00000/00000/00005 MRs: 060 MRs: 073 disconnect input, output, signals, etc. when running in background D 3.245 82/11/17 09:36:47 eric 264 263 00000/00000/00005 MRs: 060 split operation mode ("-bx" flag) and delivery mode ("d" option) so that operation mode can apply to SMTP/daemon connections also. D 3.244 82/11/14 15:34:59 eric 263 262 00000/00000/00005 MRs: 075 Explicitly inherit e_oldstyle from BlankEnvelope to MainEnvelope D 3.243 82/11/14 15:14:00 eric 262 261 00000/00000/00005 MRs: 074 fix quote processing on program mailers D 3.242 82/11/14 12:26:17 eric 261 260 00000/00000/00005 MRs: 072 Don't give an error message on unknown options D 3.241 82/11/13 18:07:59 eric 260 259 00000/00000/00005 MRs: 021 MRs: 066 MRs: 069 MRs: 069 MRs: 070 MRs: 071 Clean up argument structure (-I=>-bi, -Z=>-bz). Add -bp stub to someday print queue. Move compile conf into conf.h (still some stuff in the Makefile). Assume -bp if called as "mailq" and -bi if called as "newaliases". Drop old directory hack -- send out compat code instead. Don't rebuild the alias file automatically unless the D option is set. Clean up compilation flags. D 3.240 82/11/07 16:14:44 eric 259 258 00000/00000/00005 MRs: 041 make all mailer output go to the transcript if running server smtp; this has the effect of making some significant changes in the output structure to handle such things as -em and -as together D 3.239 82/11/07 15:31:50 eric 258 257 00000/00000/00005 MRs: 063 don't flag errors in setting dangerous options when -C is used D 3.238 82/11/05 13:12:52 eric 257 256 00000/00000/00005 MRs: 062 arrange to freeze the configuration file for quick startup -- this technique requires reprocessing the argv so that flag settings don't get lost, and is really rather of a hack. D 3.237 82/11/04 15:22:16 eric 256 255 00000/00000/00005 MRs: 019 don't unlink qf & df files on ^C D 3.236 82/11/04 13:27:28 eric 255 254 00000/00000/00005 MRs: 037 put header conditionals into the .cf file D 3.235 82/11/03 11:18:06 eric 254 253 00000/00000/00005 MRs: 059 don't strip quotes off of addresses during prescan D 3.234 82/11/03 10:34:13 eric 253 252 00000/00000/00005 MRs: 058 Put the temporary file mode on the F option D 3.233 82/11/03 09:49:15 eric 252 251 00000/00000/00005 MRs: 049 Arrange to strip quote bits in message header; move SPACESUB into conf.c; change SpaceSub to unquoted dot D 3.232 82/11/03 09:00:33 eric 251 250 00000/00000/00005 MRs: 056 Arrange for queue.c to aapt to systems w/o new directory code D 3.231 82/10/31 13:47:06 eric 250 249 00000/00000/00005 MRs: 032 MRs: 051 Call ruleset 4 after doing per-mailer translation to convert from internal to external form. D 3.230 82/10/28 17:41:15 eric 249 248 00000/00000/00005 MRs: 039 MRs: 027 Put the "@:@" trick on the "a" option. Also, move TrustedUsers into sendmail.h (it should have gone here in the first place!) D 3.229 82/10/27 20:43:35 eric 248 247 00000/00000/00005 MRs: 044 strip out bcc: and resent-bcc: always D 3.228 82/10/25 08:30:12 eric 247 246 00000/00000/00005 MRs: 040 Don't send closing protocol to SMTP if you haven't opened the connection; this happens if checkcompat fails on the only recipient. D 3.227 82/10/22 09:02:44 eric 246 245 00000/00000/00005 MRs: 023 part of a heuristic hill climbing algorithm to minimize the number of IPC bugs that come crawling over me. D 3.226 82/10/16 15:24:52 eric 245 244 00000/00000/00005 MRs: 027 Put list of login names able to use -f in the .cf file. D 3.225 82/10/16 14:43:47 eric 244 243 00000/00000/00005 MRs: 007 Arrange for a wizards password (the W option). The SMTP KILL command may only be issued if this option is set. This delta adds the "WIZ" command, and changes _KILL => KILL, _DEBUG => DEBUG, _VERBOSE => VERB, and _SHOWQ => SHOWQ. D 3.224 82/10/16 13:43:28 eric 243 242 00000/00000/00005 MRs: 024 Fix debug statement in sendall D 3.223 82/10/16 13:22:22 eric 242 241 00000/00000/00005 MRs: 010 Arrange for MD_FORK to work well with -v so that we can use it as the default. This was really a separate bug, but I have just lumped it in here -- the problem came up with stty tostop. D 3.222 82/10/13 21:55:07 eric 241 240 00000/00000/00005 MRs: 023 Don't interrupt the process doing accepts (have a separate process running the queue) to avoid a large pile of 4.1[abc] bugs. When something more stable comes out, I will change this. D 3.221 82/10/13 18:43:28 eric 240 239 00000/00000/00005 MRs: 022 Don't interpret <, >, (, or ) while in QST (quote state) during prescan D 3.220 82/10/11 09:51:43 eric 239 238 00000/00000/00005 MRs: 016 have auto-queueups print a polite message in the log (rather than an obnoxious "Temporary Failure"). Adds a new routine "logdelivery". D 3.219 82/10/09 21:02:27 eric 238 237 00000/00000/00005 MRs: 005 force a queuename in returntosender to insure that everyone has a queue name. D 3.218 82/10/09 20:27:42 eric 237 236 00000/00000/00005 MRs: 003 Lock out interrupts during alias rebuild; add an alias "@:@" after rebuild that we can check for to insure that the alias file is up to date. Times out after five minutes (is this reasonable on ucbvax?) and forces a rebuild. It shouldn't matter in the long run if two people rebuild, so I think this is the right thing to do. D 3.217 82/10/09 19:06:31 eric 236 235 00000/00000/00005 MRs: 002 Handle Reverse-Path in some reasonable way. You must put the 'X' flag (M_FULLSMTP) in the local mailer's flags to get this line. D 3.216 82/10/09 18:11:21 eric 235 234 00000/00000/00005 MRs: 013 print a status indication when a message is autoqueued, either from a -bq flag or a NoConnect D 3.215 82/10/09 17:22:35 eric 234 233 00000/00000/00005 MRs: 008 Force -v override of deferred connect D 3.214 82/10/09 17:10:37 eric 233 232 00000/00000/00005 MRs: 004 Only put the "from" person on the error queue if an error actually occured -- prevents many "duplicate supressed" messages, etc. D 3.213 82/10/09 09:05:35 eric 232 231 00000/00000/00005 MRs: 001 implement an experimental forward-path algorithm by stripping off a leading "@..." component and dropping it on the end. D 3.212 82/10/07 08:52:47 eric 231 230 00000/00000/00005 try to come up with a workaround on some of the IPC problems relating to interrupted accepts -- all this can go when everyone at Berkeley runs unflakey IPC. Also, never use ruleset three alone -- involves changing canonname again. Probably shouldn't do an auto-call of ruleset three now. D 3.211 82/10/07 01:40:19 eric 230 229 00000/00000/00005 bother.... it takes time to close a socket D 3.210 82/10/07 00:09:14 eric 229 228 00000/00000/00005 allow passing through multiple rewriting sets in test mode; => for maximum portability D 3.209 82/10/06 11:45:40 eric 228 227 00000/00000/00005 add test mode (MD_TEST, -bt) D 3.208 82/09/30 22:29:46 eric 227 226 00000/00000/00005 workaround in daemon accept code for 4.1a kernel bug: if an accept gets an EINTR and then a valid accept before the interrupt returns, the connection will be lost forever (at least, as I understand it). D 3.207 82/09/26 17:04:24 eric 226 225 00000/00000/00005 Put more configuration into setoption; merge some of the argv processing with this; move configuration information out of conf.c into the .cf file. Since a lot of stuff will default to zero, a new .cf file is required. D 3.206 82/09/26 14:45:52 eric 225 224 00000/00000/00005 completely instantiate queue files for all mail, even if not needed; fix a bug that would probably come up once every ten years in creating the queue id. should merge argv flag processing with option processing. D 3.205 82/09/24 19:39:25 eric 224 223 00000/00000/00005 change option implementation; define a bunch of interesting options. D 3.204 82/09/24 09:38:36 eric 223 222 00000/00000/00005 arrange to be able to define options; put precedences in .cf file; send errors to an Errors-To: field; fix a serious bug causing mail to not be delivered to anyone if there were any errors. D 3.203 82/09/22 10:50:47 eric 222 221 00000/00000/00005 don't put commas in non-address fields; have -bq clean up its temp files D 3.202 82/09/21 10:15:00 eric 221 220 00000/00000/00005 get rid of double error returns; improve verbose mode output to be standard format (even though verbose mode isn't standard); output queue files with commas in headers to insure that the oldstyle stuff doesn't get confused. D 3.201 82/09/18 20:37:46 eric 220 219 00000/00000/00005 fix botch where it believes that a list is !oldstyle just because it has an alias expansion in it. D 3.200 82/09/16 20:25:01 eric 219 218 00000/00000/00005 drop ":...;" stuff -- it screws it up aliases; pass parameters to subroutines (this also adds $@ and $: features to subr calls); check overflow of "tobuf" on smtp deliveries, which caused core dumps on large mailing lists D 3.199 82/09/12 22:17:30 eric 218 217 00000/00000/00005 accept ": ... ;" syntax for groups if !oldstyle D 3.198 82/09/12 16:44:03 eric 217 216 00000/00000/00005 change inheritance for macros in envelopes; be able to canonicalize non-domained names by appending domain from sender; call ruleset 3 explicitly before doing other rulesets; some general cleanup. D 3.197 82/09/11 17:18:16 eric 216 215 00000/00000/00005 don't assign $s to be the sending host (this mucks up Received: lines) -- instead just use HELO messages; chdir into queue directory and make all pathnames relative; be more conservative in creating queue id's -- in the event you get file table overflows, etc. D 3.196 82/09/08 23:55:46 eric 215 214 00000/00000/00005 fix stupid bug in wait code to dispose of "Interrupted system call" message D 3.195 82/09/08 22:13:20 eric 214 213 00000/00000/00005 fix a nasty botch in 3.194 that killed SMTP in daemon mode. sigh...... D 3.194 82/09/08 21:20:05 eric 213 212 00000/00000/00005 try to avoid "Interrupted system call" on wait in deliver and on writes; fix returned message to have proper sender; handle extra mailer output more cleverly. D 3.193 82/09/06 19:55:17 eric 212 211 00000/00000/00005 more hacking on oldstyle -- always assume sender fields are in new style so that locally generated fields are edited correctly. D 3.192 82/09/06 18:47:26 eric 211 210 00000/00000/00005 fix botch in "at"s in headers D 3.191 82/09/06 18:24:40 eric 210 209 00000/00000/00005 fix botch in computing e_oldstyle D 3.190 82/09/06 17:58:40 eric 209 208 00000/00000/00005 fix bug in scanner state machine that never let you out of quote state. D 3.189 82/09/06 17:14:03 eric 208 207 00000/00000/00005 increase log level needed to print "entered" message. D 3.188 82/09/06 17:00:23 eric 207 206 00000/00000/00005 user SMTP fixes to talk to ISI D 3.187 82/09/06 16:24:51 eric 206 205 00000/00000/00005 install new state-driven scanner; make everyone use it, thus fixing problems of quoted commas, etc. D 3.186 82/09/05 18:08:58 eric 205 204 00000/00000/00005 change $g processing from a macro substitution per mailer to two sets of rewriting rules per mailer -- one each for sender and recipient fields; convert to NBS standard on Return-Receipt-To: and Precedence: fields; clean up From: processing code and generalize it to all sender fields; tune debugging code; clean up canonname. **** This delta invalidates previous configuration files **** D 3.185 82/09/05 11:48:27 eric 204 203 00000/00000/00005 add $* to match zero or more and $> to make a "subroutine" call; stick in initial hooks for per-mailer rewriting; improve diagnostics in readcf, including number lines; increase the number of rewriting sets. D 3.184 82/09/01 10:24:00 eric 203 202 00000/00000/00005 log entering uid & pid; allow CANONUSER ($:) to abort a rewriting set. D 3.183 82/08/31 17:46:56 eric 202 201 00000/00000/00005 increase MAXMAILERS to 25 D 3.182 82/08/31 10:05:56 eric 201 200 00000/00000/00005 clean up reply code processing some more; in particular, give more detail in many messages. process connection failures correctly. D 3.181 82/08/29 23:31:35 eric 200 199 00000/00000/00005 handle comments and quotes in headers; still doesn't deal with backslashes however -- prescan should be cleaned up to deal with this case. it turns out there are many bugs in prescan; it should be extensively rewritten. D 3.180 82/08/29 17:32:49 eric 199 198 00000/00000/00005 fix serious botch in SMTP reply code delta; change a bunch of "Internal error" codes to a new "Remote protocol error" -- so that I don't get blamed for things that other systems do. D 3.179 82/08/29 16:52:31 eric 198 197 00000/00000/00005 do a better job at interpreting SMTP reply codes D 3.178 82/08/29 15:52:20 eric 197 196 00000/00000/00005 give 554 message on syserr (instead of 451) if errno == 0; as it was some permanent errors appeared transient D 3.177 82/08/27 18:01:25 eric 196 195 00000/00000/00005 hack crackaddr to strip blanks off the end of a cracked address; this happens because "u at h" becomes "$g " (with two spaces at the end). this doesn't solve the general case (e.g., "u at h (me)" comes out as "$g (me)", with three spaces), but does handle the ugliest case. besides, the "at" syntax is supposed to go away. D 3.176 82/08/27 16:01:58 eric 195 194 00000/00000/00005 simplify timeout code; allow multiple simultaneous queue runs so that large messages don't freeze things up; fix EINTR problem in sfgets; clean up canonname to be really correct; lots of misc. cleanup D 3.175 82/08/27 11:11:40 eric 194 193 00000/00000/00005 release e_id after fork in daemon code; ignore events scheduled by another process D 3.174 82/08/25 23:18:24 eric 193 192 00000/00000/00005 assign a new queue id to all jobs coming in via TCP D 3.173 82/08/25 21:22:10 eric 192 191 00000/00000/00005 sigh.... more fun and games in the daemon code to try to guess right. D 3.172 82/08/25 19:44:33 eric 191 190 00000/00000/00005 recreate a socket after every failed accept() D 3.171 82/08/25 16:19:23 eric 190 189 00000/00000/00005 apply ruleset 4 to rewrite addresses in the body of the message; fix a clock.c bug that caused it to lose events; more time cleanup. D 3.170 82/08/25 11:21:21 eric 189 188 00000/00000/00005 clean up time manipulation to always be current; assign job id's earlier to make sure there is always one with a message. D 3.169 82/08/25 10:46:27 eric 188 187 00000/00000/00005 log locked files in queuer; don't mistakenly start up two runqueue's D 3.168 82/08/24 19:55:39 eric 187 186 00000/00000/00005 put queueup log messages on a higher logging level D 3.167 82/08/24 19:41:32 eric 186 185 00000/00000/00005 log more info (on log level 11); try to detect wild accept loops; some minor cleanup and debugging checks; fix NoConnect option to; only apply to expensive mailers (regardless of sendqueue order) D 3.166 82/08/24 10:27:46 eric 185 184 00000/00000/00005 clean up event handling so that events that do longjmp's don't turn off all future events; diagnose reentry of main(). D 3.165 82/08/23 11:59:50 eric 184 183 00000/00000/00005 clean up queueing; log time in queue. **** This delta invalidates mqueue files **** D 3.164 82/08/23 09:23:54 eric 183 182 00000/00000/00005 allow continuation lines in .cf file (particularly in headers) D 3.163 82/08/22 23:07:11 eric 182 181 00000/00000/00005 change $i to $j; $i is now queue id; put "Received:" format in .cf file; minor cleanup D 3.162 82/08/22 19:03:19 eric 181 180 00000/00000/00005 assign a unique id to each transaction that can be determined from the queue file name. D 3.161 82/08/21 17:54:37 eric 180 179 00000/00000/00005 move <> and forward path processing to .cf file; increase MAXATOMS since some "comment" information may now be part of the address. **** this installation requires a new sendmail.cf file **** D 3.160 82/08/20 20:35:15 eric 179 178 00000/00000/00005 time stamp the SMTP greeting message; increase the buffer size in syslog to prevent core dumps. D 3.159 82/08/17 20:45:43 eric 178 177 00000/00000/00005 change Mail-From: to Received: for new SMTP spec (RFC821); handle folded lines in queue files correctly. D 3.158 82/08/17 16:19:10 eric 177 176 00000/00000/00005 rework header processing: do special purpose header munging in a separate routine so that the queue run can do it also; parse From lines in a fancy way, extracting the address part and turning it into a $g macro; avoid reading and processing core files that end up in the queue directory; check the queue directory name for legality; fix the verify (-bv) option. D 3.157 82/08/15 17:35:39 eric 176 175 00000/00000/00005 mark From: lines with the H_FROM bit; make VRFY work by adding the QuickAbort flag; handle headers more cleverly in queue files -- this seems to work, but I am frankly nervous. Note: this version represents a flag day!-- old queues will not process properly. D 3.156 82/08/15 11:58:25 eric 175 174 00000/00000/00005 output class rather than priority in log; accept zero intervals in event scheduling; allow continuation lines in queue files (particularly for headers); don't diagnose inappropriate errors when accepting a connection; fix bug when reprocessing addresses that put garbage in the header; some misc. debugging info (-d14 => commaize) D 3.155 82/08/08 21:15:44 eric 174 173 00000/00000/00005 make "sleep" work correctly even in the face of other events; clean up the queue processing: child queue runs now go away when done. more debugging logging is needed to verify that this works right though. D 3.154 82/08/08 17:05:19 eric 173 172 00000/00000/00005 move remotename() from deliver.c to parse.c; change default log level to 9; put error versus success delivery on different log levels; diagnose overlength lines in headers; more general event mechanism; initial implementation of canonname; don't diagnose link errors in queue, since another daemon could have grabbed it legitimately; fix a problem in VRFY on bad addresses D 3.153 82/08/08 01:00:25 eric 172 171 00000/00000/00005 change debug level to a debug vector; add levels on logging (and the -L flag); change logging to be by message-id; elevate message-id; some lint-type cleanup D 3.152 82/08/07 11:13:15 eric 171 170 00000/00000/00005 Fix address rewriting so that multiple spaces and tabs work properly D 3.151 82/07/31 16:57:49 eric 170 169 00000/00000/00005 don't give error on ETIMEDOUT on accept call; print errno properly in syserr() D 3.150 82/07/31 12:56:56 eric 169 168 00000/00000/00005 By default, just queue up the mail for most mailers and deliver from the queue. This avoids the wild process problem in netnews (or so we hope). D 3.149 82/07/27 23:09:04 eric 168 167 00000/00000/00005 clean up semantics of daemon mode to facilitate use of other IPC; move some code to main.c because it is not part of creating a connection; if you can't create a socket assume there is another sendmail running and exit; improve the verbose information in an SMTP connection to make it more obvious which messages went which way; don't attempt delivery if you get an error reading the queue file. D 3.148 82/07/25 13:11:20 eric 167 166 00000/00000/00005 clean up error handling D 3.147 82/07/22 01:23:15 eric 166 165 00000/00000/00005 new version of syslog that uses 4.2 IPC D 3.146 82/07/20 19:39:15 eric 165 164 00000/00000/00005 be smarter about when to rerun the queue when you are in repeated queue mode. D 3.145 82/07/14 11:19:27 eric 164 163 00000/00000/00005 disconnect sendmail from the controlling tty in daemon mode. D 3.144 82/07/14 11:00:33 eric 163 162 00000/00000/00005 arrange for MotherPid to be correct in daemon mode D 3.143 82/07/14 10:46:00 eric 162 161 00000/00000/00005 fork automatically in daemon mode (but only if no debugging) D 3.142 82/07/14 09:25:11 eric 161 160 00000/00000/00005 don't accidently unlink a null pointer in finis(); change the way it decides whether to remove the temp file (you don't want to if you are queueing it up); fix a bug in Apparently-To: that caused it to output both pre- and post-expanded names (only output pre-expanded) D 3.141 82/07/05 20:56:24 eric 160 159 00000/00000/00005 flush fatal error flag before returning error messages to avoid error message loop; improve debugging: flush transcript before doing things that might take a long time, add some info to debug messages; extend configuration on timeouts so that text of error message is in conf.c D 3.140 82/07/05 18:49:49 eric 159 158 00000/00000/00005 add "Apparently-To:" field if no recipients are in the header. D 3.139 82/07/05 13:21:21 eric 158 157 00000/00000/00005 count Mail-From: lines to get a hop count, giving error as appropriate after collection; don't attempt delivery of message if errors occur before or during collection; fix a bug in -as mode (non-daemon SMTP). D 3.138 82/07/05 12:37:23 eric 157 156 00000/00000/00005 check for errors before opening a daemon connection D 3.137 82/07/05 12:22:02 eric 156 155 00000/00000/00005 split off clock stuff from util.c so that vacation will compile D 3.136 82/07/05 12:02:53 eric 155 154 00000/00000/00005 put timeouts on net reads D 3.135 82/07/02 20:52:46 eric 154 153 00000/00000/00005 arrange to not lose temporary queue control files (tf files) if you interrupt a queue run process. D 3.134 82/07/02 10:00:16 eric 153 152 00000/00000/00005 be paranoid about resetting the "FatalErrors" flag -- always reset after forking for daemon or queue mode. This will prevent false error return delivery. D 3.133 82/07/02 09:43:39 eric 152 151 00000/00000/00005 take special care in outputing error messages to the transcript; a little bit of paranoia never hurt a mail system. D 3.132 82/06/30 22:39:22 eric 151 150 00000/00000/00005 open a separate transcript in the child of a daemon. D 3.131 82/06/26 14:53:40 eric 150 149 00000/00000/00005 clean up error messages on SMTP temporary failures resulting from failure to connect properly. D 3.130 82/06/26 13:53:35 eric 149 148 00000/00000/00005 more debug information; fix dependencies in makefile D 3.129 82/06/26 13:10:41 eric 148 147 00000/00000/00005 lint D 3.128 82/06/26 12:33:39 eric 147 146 00000/00000/00005 take environment variable "NAME" to determine what your full name is; this is overridden by -F. D 3.127 82/06/26 11:56:51 eric 146 145 00000/00000/00005 add _kill command to SMTP. this is probably dangerous in the outside world. D 3.126 82/06/25 19:38:24 eric 145 144 00000/00000/00005 add debugging information to server smtp code: _debug to set Debug, _verbose to set verbose, and _showq to show the send queue (already existant, just a name change) D 3.125 82/06/23 12:12:19 eric 144 143 00000/00000/00005 check prescan return values in remotename D 3.124 82/06/19 21:14:18 eric 143 142 00000/00000/00005 remember to put a newline at the end of the UGLYUUCP line D 3.123 82/06/19 21:09:10 eric 142 141 00000/00000/00005 get rid of comment lines when storing rewriting rules D 3.122 82/06/19 20:47:23 eric 141 140 00000/00000/00005 improve SMTP error reporting D 3.121 82/06/18 11:58:31 eric 140 139 00000/00000/00005 believe host name on SMTP "HELO" line D 3.120 82/06/17 10:44:38 eric 139 138 00000/00000/00005 fix botch in -Q flag (sets AliasFile rather than QueueDir) D 3.119 82/06/16 14:51:16 eric 138 137 00000/00000/00005 allow connection refused as a temporary error; make sure there is always someone to return the mail to on error D 3.118 82/06/16 14:29:20 eric 137 136 00000/00000/00005 fix botch in outputing "recipient" type lines (e.g., To:) D 3.117 82/06/07 23:53:26 eric 136 135 00000/00000/00005 allow multiple connections; call putline to output FULL_SMTP lines (to limit line lengths, etc.); involves adding an asm.sed script to the makefile D 3.116 82/06/07 07:54:55 eric 135 134 00000/00000/00005 make transcripts verbose always; misc. message cleanup, etc. D 3.115 82/06/07 07:06:13 eric 134 133 00000/00000/00005 strip out xlate stuff -- this belongs at a different level D 3.114 82/06/06 23:13:08 eric 133 132 00000/00000/00005 avoid loops by not sending to owner-owner-* -- just send to owner-owner instead D 3.113 82/06/06 23:05:17 eric 132 131 00000/00000/00005 implement alias owner feature. this actually works for any user. basically, if the alias owner-xxx exists, errors sending to xxx will be sent to that alias rather than to the sender. D 3.112 82/05/31 19:03:47 eric 131 130 00000/00000/00005 make temp files the correct modes in all cases D 3.111 82/05/31 18:49:50 eric 130 129 00000/00000/00005 pass lint. notice that definitions in llib-lc have changed for alarm() and sleep() calls {arg was unsigned, is now int}. D 3.110 82/05/31 17:10:51 eric 129 128 00000/00000/00005 eliminate -V, -D, -p flags in favor of a single flag "-bx" (be in mode x). D 3.109 82/05/31 15:35:57 eric 128 127 00000/00000/00005 don't output SMTP/FTP error codes in transcript file D 3.108 82/05/31 15:32:18 eric 127 126 00000/00000/00005 finish implementing envelopes. it's not completely clear to me that this is really the way to go, but it seems clearly better than what i had before. this delta includes many other minor changes, so it should probably not be blithely removed. D 3.107 82/05/30 10:25:35 eric 126 125 00000/00000/00005 add M_FULLSMTP (``X'' flag in .cf file) for eventual implementation of full SMTP. This version must support such garbage as line limits, address length limits, return-path, etc. D 3.106 82/05/29 20:00:30 eric 125 124 00000/00000/00005 allow the user with name "daemon" to send mail as anyone s/he wants. D 3.105 82/05/22 02:05:48 eric 124 123 00000/00000/00005 add "junk mail" -- error responses are never returned. D 3.104 82/05/22 01:38:07 eric 123 122 00000/00000/00005 add "envelopes" to contain the basic information needed as control info for each message. currently there is only one envelope -- this being the obvious stupid conversion. later there will be separate envelopes for error messages, return receipts, etc. D 3.103 82/05/20 17:46:07 eric 122 121 00000/00000/00005 add dfopen as a "determined fopen" -- it retries if it gets recoverable errors. we use it for returning mail (to dead.letter) and creating the temp file. the whole idea is to avoid dropping things on the floor on heavily loaded systems. this is untested, since it seems impossible to fill up the inode or file tables on this VAX (but it works if the open succeeds). D 3.102 82/05/15 12:29:36 eric 121 120 00000/00000/00005 add the 'R' flag to mailers, saying to rewrite the recipient addresses to be relative to the recipient. This makes reply code easy, but confuses user mail programs that are expecting to have to rewrite recipient addresses. In general, the receiving host must be "smart" for this to work. D 3.101 82/05/06 20:21:14 eric 120 119 00000/00000/00005 allow socket number on [IPC] connections -- eventually this could be used to handle other low-level protocols. D 3.100 82/03/27 20:15:12 eric 119 118 00000/00000/00005 delete neat remotename feature, because it doesn't work right in UUCPland -- and breaks stupid hosts. 'Twill be fixed, I promise. Time must be spent figuring out how to define the civilized versus the uncivilized world. D 3.99 82/03/27 19:57:44 eric 118 117 00000/00000/00005 compensate for bug in getlogin: can return the empty string ("") for certain error conditions rather than the NULL pointer. D 3.98 82/03/22 22:37:54 eric 117 116 00000/00000/00005 continue the impossible task of tracking Bill Joy D 3.97 82/03/22 22:10:44 eric 116 115 00000/00000/00005 more cleanup for new 4.2 system configuration and some more fixes for vanilla V7 D 3.96 82/03/20 18:13:01 eric 115 114 00000/00000/00005 take % as an acceptable name terminator in GECOS field ("in-care-of") -- for TEF%UCSFCGL D 3.95 82/03/20 16:12:27 eric 114 113 00000/00000/00005 16 bit changes -- should have no effect on VAX binaries to speak of. D 3.94 82/03/06 16:11:49 eric 113 112 00000/00000/00005 get queue scanning working correctly in conjunction with daemon mode D 3.93 82/03/06 15:35:49 eric 112 111 00000/00000/00005 have daemon mode assume SMTP mode D 3.92 82/03/06 15:08:24 eric 111 110 00000/00000/00005 give correct error message in SMTP if some of the addresses are not ok D 3.91 82/03/06 14:52:22 eric 110 109 00000/00000/00005 arrange to be able to accept a connection from any host. D 3.90 82/03/06 14:15:55 eric 109 108 00000/00000/00005 collapse special character processing into macro processing for simplicity of code. D 3.89 82/03/06 12:09:18 eric 108 107 00000/00000/00005 clean up error handling in IPC case; fix a minor bug in headers in queueing code; make SMTP mail multi user per connect. D 3.88 82/03/05 10:45:48 eric 107 106 00000/00000/00005 remove silly $U dependency in UGLYUUCP code D 3.87 82/03/05 10:13:06 eric 106 105 00000/00000/00005 include direct connect on outgoing mail if the pathname is "[IPC]" -- this gives minimal number of processes for ethernet mail. D 3.86 82/02/27 12:29:31 eric 105 104 00000/00000/00005 more work on after $g translate rewriting D 3.85 82/02/27 11:37:42 eric 104 103 00000/00000/00005 implement "return receipt requested". D 3.84 82/02/27 09:51:36 eric 103 102 00000/00000/00005 improve rewriting of "after $g translate" to correspond to the real world..... D 3.83 82/02/26 21:56:10 eric 102 101 00000/00000/00005 implement daemon mode D 3.82 82/02/26 19:02:33 eric 101 100 00000/00000/00005 default to OldStyle headers -- this turns out to be needed so that it will work right when running as a server. D 3.81 82/02/22 19:59:16 eric 100 99 00000/00000/00005 some hacks to make the ethernet community happier -- .cf changes only D 3.80 82/02/22 19:32:12 eric 99 98 00000/00000/00005 be much more clever about splitting up addresses when doing header rewriting. become NewStyle automatically based on heuristics; this makes some other addresses work, although there are conceivably sites that this could break. Perhaps we should default to OldStyle? I don't think this would break anything. D 3.79 82/02/20 16:56:02 eric 98 97 00000/00000/00005 output names in a nice comma-separated fashion in messages -- this opens up other possibilities D 3.78 82/02/20 12:59:46 eric 97 96 00000/00000/00005 expand macros in rewriting rules early to allow multi-word macros to be processed correctly. D 3.77 82/02/20 12:12:09 eric 96 95 00000/00000/00005 add the -c flag, to cause sendmail to just queue messages that are for mailers that are expensive; a later instantiation can come around and send them in a batch. Also, pass macro definitions through the queueing code so that macros can be expanded later rather than sooner; this is important for destination dependent macros such as $g. D 3.76 82/02/04 20:31:21 eric 95 94 00000/00000/00005 add host aliasing; add -p flag. this version doesn't yet know about replacing the text of the host alias into the message however. syntax is grotty: "/hostmatch:%s@newhost" or whatever. D 3.75 82/01/23 14:21:06 eric 94 93 00000/00000/00005 add M_UGLYUUCP flag; only catch names with leading slash as filenames; let the user redefine their full name; don't pass -r or -f to uux. D 3.74 82/01/10 21:57:33 eric 93 92 00000/00000/00005 cleanup from cbosgd (Mark Horton) testing; some internals, mostly configuration. This tries to make the configuration file (cf.m4) be much more general, but I fear it is doomed to failure -- it may be better to just tell people to roll their own. D 3.73 82/01/05 09:59:19 eric 92 91 00000/00000/00005 fix botch in UGLYUUCP code -- gave "remote from " instead of "remote from " D 3.72 82/01/01 18:39:43 eric 91 90 00000/00000/00005 know about all known Berknet host names so that we can handle the "." notation happily in the full name representation. D 3.71 82/01/01 18:27:15 eric 90 89 00000/00000/00005 send to dead.letter using sendto/recipient/deliver mechanism rather than mailfile; this fixes a bug with the "from" name and seems like a better abstraction. D 3.70 81/12/06 12:39:10 eric 89 88 00002/00000/00003 cleanup so it will go through lint without any fancy grep -v's; change the way SCCS Id's are handled. D 3.69 81/12/05 14:14:06 eric 88 87 00000/00000/00003 insert SMTP "Mail-From:" line. D 3.68 81/12/05 11:53:41 eric 87 86 00000/00000/00003 put the SMTP and queueing code on compilation flags so that sendmail will fit on non-ID PDP-11's (ugh); put the ugly UUCP hack on a compilation flag also to emphasize that it sucks eggs; makefile cleanup. D 3.67 81/11/27 21:37:05 eric 86 85 00000/00000/00003 this is a stupid hack to put "remote from " lines on the From lines going to UUCP mail. someday i hope to rip out this stupidity. it is triggered by any mailer named "uucp" -- it ought to be a special flag, but i refuse to legitimize antique hacky mistakes. D 3.66 81/11/22 19:17:45 eric 85 84 00000/00000/00003 Edit queue control files when running queue (assuming there are still recipients left). Also, modify the MsgPriority to be the absolute number (not the Priority: value); this allows us to include aging into the priority algorithm. D 3.65 81/11/21 18:42:47 eric 84 83 00000/00000/00003 change the send queue to be only one queue instead of one per mailer. this is slightly inefficient but simpler. also, pass this queue around so we can have multiple send queues. this makes VRFY work. D 3.64 81/11/21 16:38:29 eric 83 82 00000/00000/00003 convert to SMTP draft 3 -- finishing touches. Punt on the VRFY/ EXPN commands for now; they aren't required anyhow. Move the fullname into the address structure so it can be inherited. D 3.63 81/11/11 20:24:07 eric 82 81 00000/00000/00003 integrate user SMTP into sendmail itself. If there is no $u arg in the mailer argument list, SMTP is run. This can be used directly over the Ethernet or to any clever mailer. We still need to edit spooled control files to remove recipients that have been successfully sent during queue processing. D 3.62 81/11/08 13:00:21 eric 81 80 00000/00000/00003 know about SMTP over TCP. The current SMTP user is not clever enough to deal with multiple users at one host. To fix this we will have to speak some smart protocol between sendmail and the mailer -- maybe SMTP?? D 3.61 81/11/07 15:41:39 eric 80 79 00000/00000/00003 clean up to compile & work on ARPAVAX; move stat file to /usr/lib/sendmail.st; fix bug in syserr with error codes D 3.60 81/10/31 22:12:47 eric 79 78 00000/00000/00003 drop old NCP stuff for ARPANET handling; fix some bugs in error messages with multiple recipients in SMTP; clean up error handling D 3.59 81/10/27 12:24:51 eric 78 77 00000/00000/00003 experimental version combining queueing with daemon operation. I'm sure this doesn't work -- if only because the wait()s are funny. D 3.58 81/10/27 10:50:52 eric 77 76 00000/00000/00003 More queueing cleanup: implement timeouts (still one-stage), properly implement priorities (didn't work before), and miscellaneous cleanup. D 3.57 81/10/26 14:22:34 eric 76 75 00000/00000/00003 Install new experimental queueing facility -- one stage timeout, etc. This version is still quite incomplete. It needs to reorder the queue after some interval, do two-stage timeout, take option info from the queue file instead of the command line, read the sender's .mailcf file, etc. Some of this is useful for SMTP also. D 3.56 81/10/23 19:38:09 eric 75 74 00000/00000/00003 Eliminate magic MN_LOCAL and MN_PROG; change q_mailer item in ADDRESS to be pointer to mailer rather than index. D 3.55 81/10/22 10:25:29 eric 74 73 00000/00000/00003 move stats file to /usr/lib; put location of sendmail.hf in conf.c D 3.54 81/10/22 09:43:48 eric 73 72 00000/00000/00003 take fullname from /etc/passwd if Smtp mode and sender name is indeed local. Also accepts names more often; this is probably a disaster for sender verification. D 3.53 81/10/22 09:14:30 eric 72 71 00000/00000/00003 implement HELP and MRSQ -- MRSQ is a partial implementation of old MTP -- in particular, To: fields in MAIL commands are not yet implemented. The "message" routine now takes first args of the form "999-" to specify continuation. D 3.52 81/10/20 11:36:24 eric 71 70 00000/00000/00003 clean up the SMTP stuff some more D 3.51 81/10/19 22:27:17 eric 70 69 00000/00000/00003 implement SMTP mode -- doesn't support source routing or the HELP command, and doesn't give the correct code on VRFY or forwarding. Maybe someday.... D 3.50 81/10/17 16:58:04 eric 69 68 00000/00000/00003 initial prep to put in Daemon mode D 3.49 81/10/12 10:04:19 eric 68 67 00000/00000/00003 throw in some "errno = 0;"'s to make syserr's more accurate; take any -f flag if debug mode and uid==euid. D 3.48 81/10/08 22:55:37 eric 67 66 00000/00000/00003 ignore interrupts and hangups while calling mailer. D 3.47 81/10/08 09:13:30 eric 66 65 00000/00000/00003 fix botch in backup code during rewriting D 3.46 81/10/06 19:12:57 eric 65 64 00000/00000/00003 change rewriting rules to use $N on RHS to match LHS, and include $=X (class match) in the matching; this will allow us to match the proposed "user.host@domain" syntax as well as the old syntax, by putting the known domains into a class to disambiguate. D 3.45 81/10/02 11:05:21 eric 64 63 00000/00000/00003 arrange to give the correct "from" person on error messages. D 3.44 81/10/02 10:07:38 eric 63 62 00000/00000/00003 use ruleset 2 to rewrite names after the $g translate (to fix some forwarding problems; do a read check in putmessage (just in case the temp file disappeared); some general cleanup. D 3.43 81/09/30 10:00:20 eric 62 61 00000/00000/00003 fix the <> syntax, convert "at" to "@" in from addresses also, plus some minorness to get the multi-machine case going nicely. D 3.42 81/09/29 18:22:25 eric 61 60 00000/00000/00003 change processing of From: person; basically, this mod deletes the Original-From: line if redundant with the generated From: line, uses the Original-From: line for the From: line if possible, and a host of other such trivialities. D 3.41 81/09/29 14:59:00 eric 60 59 00000/00000/00003 fix hash function computation for symbol table on 16-bit machines D 3.40 81/09/28 19:17:29 eric 59 58 00000/00000/00003 enable aliases to self-reference themselves correctly. D 3.39 81/09/24 10:30:44 eric 58 56 00000/00000/00003 changes to work under a V6 system -- mostly compilation flags D 3.38.1.1 81/09/23 18:23:19 eric 57 56 00000/00000/00003 break some configuration into conf.h -- simplifies makefile changes on different machines. But there are still conditional libraries, so this may not be a good idea..... D 3.38 81/09/23 09:52:23 eric 56 55 00000/00000/00003 fix bug in file modes when mailing to files that didn't exist before; add an 'F' line to the .cf file that will read class entries from another file, given a scanf string to do the parsing. D 3.37 81/09/22 13:24:25 eric 55 54 00000/00000/00003 fix problem with using macros in rules; change configuration to send different flags when destined for arpanet vs. berknet hosts, etc. D 3.36 81/09/22 11:33:29 eric 54 53 00000/00000/00003 finally make suppression of sender in mailing lists work -- this version also works correctly on simple aliases. D 3.35 81/09/21 18:49:53 eric 53 52 00000/00000/00003 fix suppression of from address in mailing lists. D 3.34 81/09/20 10:46:32 eric 52 51 00000/00000/00003 don't let a mailer ever execute as root (that should solve the security problems!) -- essentially just map root into someone else. Adds yet another configuration variable (should this be in the .cf file? D 3.33 81/09/16 20:04:26 eric 51 50 00000/00000/00003 take underscore as well as space to separate parts of a person's full name. Dot notation should be made to work someday also. D 3.32 81/09/16 17:16:19 eric 50 49 00000/00000/00003 have .forward ownership stick harder than :include: ownership: this prevents cretins from using writable root files for nastiness. all this is pointless if /usr/lib/aliases is writable though.... D 3.31 81/09/16 16:39:44 eric 49 48 00000/00000/00003 be REALLY clever and inherit uid/gid from owner of :include: files also... solves problem of alias to non-secure file D 3.30 81/09/16 16:24:19 eric 48 47 00000/00000/00003 last delta was too paranoid -- this increases the number of cases that work (but is still safe -- I hope) D 3.29 81/09/16 16:08:08 eric 47 46 00000/00000/00003 run as the user forwarding mail after a .forward operation; fix a bug in .forwarding that caused recursive expansion; restrict mail to programs, files, and with :include: for security reasons. D 3.28 81/09/14 12:41:28 eric 46 45 00000/00000/00003 check MAXATOM overflow; increase MAXATOM value D 3.27 81/09/14 12:19:23 eric 45 44 00000/00000/00003 fix but in mailers that only take one address at a time D 3.26 81/09/12 17:34:05 eric 44 43 00000/00000/00003 match on full name for local users D 3.25 81/09/12 15:48:57 eric 43 42 00000/00000/00003 change From: processing to reduce the number of Original-From: lines; change allocation of global variables. D 3.24 81/09/07 14:12:48 eric 42 41 00000/00000/00003 fix up umask; allow setuid on files to take recipient owner; factor some configuration info into conf.c D 3.23 81/09/07 12:33:38 eric 41 40 00000/00000/00003 add auto-rebuild on alias database; fix some aliasing bugs; add statistics to rebuild; slight code restructuring; change version handling one last (?) time D 3.22 81/09/07 10:23:04 eric 40 39 00000/00000/00003 add NOTUNIX compile flag to turn off UNIX "From " line processing D 3.21 81/09/06 19:50:23 eric 39 38 00000/00000/00003 cleanup, commenting, linting, etc. D 3.20 81/09/06 14:23:20 eric 38 37 00000/00000/00003 improve "version:" entry in makefile; fix -em (mail back errors) option D 3.19 81/09/06 10:29:49 eric 37 36 00000/00000/00003 fix $u argument processing bug (happened in uucp); .cf file cleanup D 3.18 81/08/31 21:22:39 eric 36 35 00000/00000/00003 collect mail statistics; minor configuration changes D 3.17 81/08/31 12:11:57 eric 35 34 00000/00000/00003 allow "error" as a net name to print error messages D 3.16 81/08/29 19:16:24 eric 34 33 00000/00000/00003 drop unnecessary H_FORCE bits in conf.c; delete H_DELETE (since H_ACHECK can be used with a zero mask field) D 3.15 81/08/27 11:42:58 eric 33 32 00000/00000/00003 on -t, use argument list as a supress list D 3.14 81/08/25 16:06:37 eric 32 31 00000/00000/00003 change handling of characters; remove special "at" processing (put it in .cf file) D 3.13 81/08/24 14:05:39 eric 31 30 00000/00000/00003 Add "-t" option to read To:, Cc:, and Bcc: lines to get recipients D 3.12 81/08/23 12:08:53 eric 30 29 00000/00000/00003 plug assorted security holes D 3.11 81/08/22 17:52:06 eric 29 28 00000/00000/00003 Arrange to pull full name out of From line if found; includes Original-From: hacking (oh so ugly). There's got to be a better way to do this... D 3.10 81/08/22 14:45:27 eric 28 27 00000/00000/00003 fix UNIX From line parsing problem; add $b macro to get correct dates; fix mail-to-file problem; define basic macros before cracking arguments so that -D is more useful D 3.9 81/08/21 18:51:33 eric 27 26 00000/00000/00003 return transcript even if no message was collected D 3.8 81/08/21 18:23:53 eric 26 25 00000/00000/00003 drop M_FINAL, add $y=ttyname, rename some constants D 3.7 81/08/20 15:19:50 eric 25 24 00000/00000/00003 internal cleanup & minor improvements D 3.6 81/08/18 11:40:37 eric 24 23 00000/00000/00003 allow :include: specs D 3.5 81/08/17 11:02:12 eric 23 22 00000/00000/00003 implement hashing in symbol table and add more headers, from BB&N Report No. ICST/CBOS - 80/2, "Specification of a Draft Message Format Standard (Draft Report)", prepared for NBS. D 3.4 81/08/09 19:08:25 eric 22 21 00000/00000/00003 put mailer definitions into configuration file D 3.3 81/03/28 11:52:37 eric 21 20 00003/00001/00000 change format of Version to be suitable for internal use D 3.2 81/03/20 09:45:43 eric 20 19 00001/00001/00000 change name (again); from postbox to sendmail D 3.1 81/03/07 14:27:18 eric 19 18 00001/00001/00000 ----- delivermail ==> postbox ----- D 2.8 81/02/28 11:54:11 eric 18 17 00000/00000/00001 install VAX mpx file logging D 2.7 81/02/05 08:01:25 eric 17 16 00000/00000/00001 always issued a delivermail error message regardless of M_QUIET D 2.6 81/01/10 14:28:41 eric 16 15 00000/00000/00001 include ArpaLocal; flush output on errors; allow "user" "at" "host" as separate parameters; etc. D 2.5 81/01/08 23:57:31 eric 15 14 00000/00000/00001 fixed botch in at => @ translation D 2.4 81/01/08 19:37:22 eric 14 13 00000/00000/00001 fixed several bugs in parser; translate into quoted . D 2.3 80/12/06 17:33:32 eric 13 12 00000/00000/00001 fix ^D botch in maketemp; allow "eric:eric,i.eric" D 2.2 80/11/20 19:57:57 eric 12 11 00000/00000/00001 make dates be taken as date sent rather than date delivered D 2.1 80/11/05 11:00:06 eric 11 10 00000/00000/00001 release 2 D 1.10 80/10/28 23:52:38 eric 10 9 00000/00000/00001 fixed ANOTHER bug in aliasing (this is getting dull....) D 1.9 80/10/27 19:28:30 eric 9 8 00000/00000/00001 fix alias bug; count message sizes; map stderr->stdout; misc. D 1.8 80/10/21 12:58:43 eric 8 7 00000/00000/00001 install dbm stuff + fix quoting bugs D 1.7 80/10/18 16:48:51 eric 7 6 00000/00000/00001 cleanup for dbm stuff: Error => Errors; move local host detection into parse; misc cleanup D 1.6 80/10/15 10:24:24 eric 6 5 00000/00000/00001 deal with disk overflows D 1.5 80/10/11 20:10:44 eric 5 4 00000/00000/00001 fixed problem with sizeof MsgId == 0 D 1.4 80/10/11 18:55:35 eric 4 3 00000/00000/00001 cleanup to simplify distribution D 1.3 80/10/11 13:49:55 eric 3 2 00000/00000/00001 accept multi-line fields in headers D 1.2 80/10/11 13:37:53 eric 2 1 00000/00000/00001 test D 1.1 80/10/11 13:34:43 eric 1 0 00001/00000/00000 code versions: conf.o conf.c 5.14 (Berkeley) 1/10/86 main.o Copyright (c) 1980 Regents of the University of California. main.c 5.11 (Berkeley) 1/30/86 sendmail.h 5.8 1/10/86 collect.o collect.c 5.2 (Berkeley) 6/8/85 parseaddr.o parseaddr.c 5.6 (Berkeley) 4/2/86 alias.o alias.c 5.13 (Berkeley) 4/17/86 (with DBM) deliver.o deliver.c 5.10 (Berkeley) 3/2/86 savemail.o savemail.c 5.7 (Berkeley) 12/7/85 err.o err.c 5.7 (Berkeley) 11/22/85 readcf.o readcf.c 5.10 (Berkeley) 1/11/86 stab.o stab.c 5.2 (Berkeley) 6/7/85 headers.o headers.c 5.7 (Berkeley) 9/21/85 recipient.o recipient.c 5.7 (Berkeley) 1/9/86 stats.o stats.c 5.8 (Berkeley) 5/2/86 daemon.o daemon.c 5.18 (Berkeley) 4/2/86 (with daemon mode) usersmtp.o usersmtp.c 5.7 (Berkeley) 4/2/86 srvrsmtp.o srvrsmtp.c 5.18 (Berkeley) 1/5/86 queue.o queue.c 5.21 (Berkeley) 4/17/86 macro.o macro.c 5.3 (Berkeley) 9/19/85 util.o util.c 5.8 (Berkeley) 12/17/85 clock.o clock.c 5.4 (Berkeley) 12/17/85 trace.o trace.c 5.2 (Berkeley) 6/7/85 envelope.o envelope.c 5.12 (Berkeley) 12/17/85 sysexits.o sysexits.c 5.2 (Berkeley) 6/7/85 arpadate.o arpadate.c 5.4 (Berkeley) 1/9/86 convtime.o convtime.c 5.1 (Berkeley) 6/7/85 # endif COMMENT