|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.