mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 21:05:08 +00:00
Import sendmail-8.8.2 onto the vendor branch
Obtained from: Eric Allman <eric@sendmail.org>
This commit is contained in:
parent
5160fa301b
commit
606a993469
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor/sendmail/dist-old/; revision=19146
|
@ -1,731 +1,9 @@
|
|||
Newsgroups: comp.mail.sendmail,comp.mail.misc,comp.mail.smail,comp.answers,news.answers
|
||||
Subject: comp.mail.sendmail Frequently Asked Questions (FAQ)
|
||||
From: brad@birch.ims.disa.mil (Brad Knowles)
|
||||
Followup-to: comp.mail.sendmail
|
||||
Summary: This posting contains a list of Frequently Asked Questions
|
||||
(and their answers) about the program "sendmail", distributed
|
||||
with many versions of Unix (and available for some other
|
||||
operating systems). This FAQ is shared between
|
||||
comp.mail.sendmail and the Sendmail V8 distribution. It should
|
||||
be read by anyone who wishes to post to comp.mail.sendmail, or
|
||||
anyone having questions about the newsgroup itself.
|
||||
|
||||
Archive-name: mail/sendmail-faq
|
||||
Posting-Frequency: monthly (first Monday)
|
||||
|
||||
|
||||
[The most recent copy of this document can be obtained via anonymous
|
||||
FTP from rtfm.mit.edu in /pub/usenet/news.answers/mail/sendmail-faq.
|
||||
The FAQ is no longer maintained with the sendmail release. It is
|
||||
posted regularly to comp.mail.sendmail, comp.mail.misc, comp.mail.smail,
|
||||
comp.answers, and news.answers, and can be obtained via anonymous FTP
|
||||
from ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq.
|
||||
If you do not have access to anonymous FTP, you can retrieve it by
|
||||
sending email to mail-server@rtfm.mit.edu with the command "send
|
||||
usenet/news.answers/mail/sendmail-faq" in the message.]
|
||||
usenet/news.answers/mail/sendmail-faq" in the message.
|
||||
|
||||
|
||||
|
||||
Sendmail Version 8
|
||||
Frequently Asked Questions
|
||||
Last updated 9/17/95
|
||||
|
||||
|
||||
This FAQ is specific to Version 8.6.10 of sendmail. Other questions,
|
||||
particularly regarding compilation and configuration, are answered in
|
||||
src/READ_ME and cf/README (found in the V8 sendmail distribution).
|
||||
|
||||
This is also the official FAQ for the Usenet newsgroup
|
||||
comp.mail.sendmail.
|
||||
|
||||
======================================================================
|
||||
BEFORE YOU GO ANY FURTHER
|
||||
======================================================================
|
||||
|
||||
* What do you wish everyone would do before sending you mail or
|
||||
posting to comp.mail.sendmail?
|
||||
|
||||
Read this FAQ completely. Read src/READ_ME and cf/README
|
||||
completely. Read the books written to help with common
|
||||
problems such as compilation and installation, configuration,
|
||||
security issues, etc.... Ask themselves if their question
|
||||
hasn't already been answered.
|
||||
----------------------------------------------------------------------
|
||||
* How can I be sure if this is the right place to look for answers
|
||||
to my questions?
|
||||
|
||||
1. Do you know, for a fact, that the question is related to
|
||||
sendmail V8?
|
||||
|
||||
2. Do you know, for a fact, that the question is related to an
|
||||
older version of sendmail?
|
||||
|
||||
3. Is the question about a sendmail-like program (e.g., Smail,
|
||||
Zmailer, MMDF, etc...)?
|
||||
|
||||
4. Is the question about an SMTP Gateway product for a LAN
|
||||
mail package (e.g., cc:Mail, MS-Mail, WordPerfect
|
||||
Office/GroupWise, etc...)?
|
||||
|
||||
If you answered "yes" to the question #1, then this is the
|
||||
right place.
|
||||
|
||||
If you answered "yes" to questions #2 or #3, then you should
|
||||
seriously consider upgrading to the most recent version of
|
||||
sendmail V8.
|
||||
|
||||
For question #2, If you're going to continue using an older
|
||||
version of sendmail, you may not find much help and will
|
||||
probably get some responses that amount to "Get V8".
|
||||
Otherwise, this is probably the best place to look for
|
||||
answers.
|
||||
|
||||
If you answered "yes" to question #3 and are not going to
|
||||
upgrade to sendmail V8, then this is probably not the right
|
||||
place to look.
|
||||
|
||||
If you answered "yes" to question #4, then this is almost
|
||||
certainly not the right place to look.
|
||||
|
||||
For questions #3 and #4, try looking around elsewhere in the
|
||||
"comp.mail.*" hierarchy for a more appropriate newsgroup.
|
||||
For example, you might want to try posting to comp.mail.misc
|
||||
or comp.mail.smail.
|
||||
|
||||
If you couldn't answer "yes" to any of the above questions,
|
||||
then you're DEFINITELY in the wrong place. For the sake of
|
||||
your sanity and ego, not to mention avoiding the waste of
|
||||
your time and ours, try asking your System or E-Mail
|
||||
Administrator(s) before you post any questions publicly.
|
||||
----------------------------------------------------------------------
|
||||
* Where can I find the latest version of this FAQ?
|
||||
|
||||
It is included in the most recent Version 8 distribution of
|
||||
sendmail (described below), as well as via anonymous FTP from
|
||||
rtfm.mit.edu in /pub/usenet/news.answers/mail/sendmail-faq.
|
||||
If you do not have access to anonymous FTP, you can retrieve
|
||||
it by sending email to mail-server@rtfm.mit.edu with the
|
||||
command "send usenet/news.answers/mail/sendmail-faq" in the
|
||||
message.
|
||||
----------------------------------------------------------------------
|
||||
* I don't have access to Usenet news. Can I still get access to
|
||||
comp.mail.sendmail?
|
||||
|
||||
Yes. Send email to mxt@dl.ac.uk with the command "sub
|
||||
comp-news.comp.mail.sendmail <full-US-ordered-email-address>"
|
||||
in the message.
|
||||
|
||||
E-mail you want posted on comp.mail.sendmail should be sent
|
||||
to comp-mail-sendmail@dl.ac.uk
|
||||
----------------------------------------------------------------------
|
||||
* I have sendmail-related DNS questions. Where should I ask them?
|
||||
|
||||
Depending on how deeply they get into the DNS, they can be
|
||||
asked here. However, you'll probably be told that you should
|
||||
send them to the Info-BIND mailing list (if the question is
|
||||
specific to that program) or to the Usenet newsgroup
|
||||
comp.protocols.tcp-ip.domains (DNS in general).
|
||||
----------------------------------------------------------------------
|
||||
* How do I subscribe to either of these?
|
||||
|
||||
For comp.protocols.tcp-ip.domains, you have to be on Usenet.
|
||||
They don't have a news-to-mail gateway yet.
|
||||
|
||||
For the Info-BIND mailing list, send email to
|
||||
bind-request@uunet.uu.net with the command "subscribe" in the
|
||||
message. Submissions should be sent to bind@uunet.uu.net
|
||||
|
||||
======================================================================
|
||||
GENERAL QUESTIONS
|
||||
======================================================================
|
||||
|
||||
* Where can I get Version 8?
|
||||
|
||||
Via anonymous FTP from FTP.CS.Berkeley.EDU in /ucb/sendmail.
|
||||
----------------------------------------------------------------------
|
||||
* What are the differences between Version 8 and other versions?
|
||||
|
||||
See doc/changes/changes.me in the sendmail distribution.
|
||||
----------------------------------------------------------------------
|
||||
* What happened to sendmail 6.x and 7.x?
|
||||
|
||||
When a new (Alpha/Beta) version of sendmail was released, it
|
||||
was changed to Release 6. Development continued in that tree
|
||||
until 4.4BSD was released, when everything on the 4.4 tape
|
||||
was set to be version 8.1. Version 7.x never existed.
|
||||
----------------------------------------------------------------------
|
||||
* What books are available describing sendmail?
|
||||
|
||||
There is one book available devoted to sendmail:
|
||||
|
||||
Costales, Allman, and Rickert, _Sendmail_. O'Reilly &
|
||||
Associates.
|
||||
|
||||
Several books have sendmail chapters, for example:
|
||||
|
||||
Nemeth, Snyder, and Seebass, _Unix System Administration
|
||||
Handbook_. Prentice-Hall.
|
||||
Carl-Mitchell and Quarterman, _Practical Internetworking with
|
||||
TCP/IP and UNIX_. Addison-Wesley.
|
||||
Hunt, _TCP/IP Network Administration_. O'Reilly & Associates.
|
||||
|
||||
Another book about sendmail is due out "soon":
|
||||
|
||||
Avolio & Vixie, _Sendmail Theory and Practice_. Digital
|
||||
Press (release date unknown).
|
||||
|
||||
For details on sendmail-related DNS issues, consult:
|
||||
|
||||
Liu and Albitz, _DNS and BIND_. O'Reilly & Associates.
|
||||
|
||||
For details on UUCP, see:
|
||||
|
||||
O'Reilly and Todino, _Managing UUCP and Usenet_.
|
||||
O'Reilly & Associates.
|
||||
|
||||
======================================================================
|
||||
COMPILING AND INSTALLING SENDMAIL 8
|
||||
======================================================================
|
||||
|
||||
* Version 8 requires a new version of "make". Where can I get this?
|
||||
|
||||
Actually, Version 8 does not require a new version of "make".
|
||||
It includes a collection of Makefiles for different architectures,
|
||||
only one or two of which require the new "make". For a supported
|
||||
architecture, use ``sh makesendmail''. If you are porting to a
|
||||
new architecture, start with Makefile.dist.
|
||||
|
||||
If you really do want the new make, it is available on any of
|
||||
the BSD Net2 or 4.4-Lite distribution sites. These include:
|
||||
|
||||
ftp.uu.net /systems/unix/bsd-sources
|
||||
gatekeeper.dec.com /.0/BSD/net2
|
||||
ucquais.cba.uc.edu /pub/net2
|
||||
ftp.luth.se /pub/unix/4.3bsd/net2
|
||||
|
||||
Diffs and instructions for building this version of make
|
||||
under SunOS 4.1.x are available on ftp.css.itd.umich.edu in
|
||||
/pub/systems/sun/Net2-make.sun4.diff.Z. A patchkit for
|
||||
Ultrix is on ftp.vix.com in /pub/patches/pmake-for-ultrix.Z.
|
||||
Patches for AIX 3.2.4 are available on ftp.uni-stuttgart.de
|
||||
in /sw/src/patches/bsd-make-rus-patches.
|
||||
|
||||
There is also a Linux version available on the main Linux
|
||||
distribution sites as pmake; this version is included as
|
||||
standard with the current Slackware distributions.
|
||||
----------------------------------------------------------------------
|
||||
* What macro package do I use to format the V8 man pages?
|
||||
|
||||
The BSD group switched over the the ``mandoc'' macros for the
|
||||
4.4 release. These include more hooks designed for hypertext
|
||||
handling. However, new man pages won't format under the old
|
||||
man macros. Fortunately, old man pages will format under the
|
||||
new mandoc macros.
|
||||
|
||||
Get the new macros with the BSD Net2 or 4.4-Lite release (see
|
||||
above for locations; for example, on FTP.UU.NET the files
|
||||
/system/unix/bsd-sources/share/tmac/me/strip/sed and
|
||||
/system/unix/bsd-sources/share/tmac/* are what you need).
|
||||
|
||||
This macro set is also included with newer versions of groff.
|
||||
----------------------------------------------------------------------
|
||||
* What modes should be used when installing sendmail?
|
||||
|
||||
The sendmail binary should be owned by root, mode 4755.
|
||||
The queue directory should be owned by root, with a mode
|
||||
between 700 and 755. Under no circumstances should
|
||||
it be group or other writable!
|
||||
The sendmail config file should be owned by root, mode 644.
|
||||
The aliases file should generally be owned by one trusted
|
||||
user and writable only by that user, although it is
|
||||
not unreasonable to have it group writable by a
|
||||
"sysadmin" group. It should not be world writable.
|
||||
The aliases database files (aliases.db or aliases.{pag,dir}
|
||||
depending on what database format you compile with)
|
||||
should be owned by root, mode 644.
|
||||
|
||||
======================================================================
|
||||
CONFIGURATION QUESTIONS
|
||||
======================================================================
|
||||
|
||||
* How do I make all my addresses appear to be from a single host?
|
||||
|
||||
Using the V8 configuration macros, use:
|
||||
|
||||
MASQUERADE_AS(my.dom.ain)
|
||||
|
||||
This will cause all addresses to be sent out as being from
|
||||
the indicated domain.
|
||||
----------------------------------------------------------------------
|
||||
* How do I rewrite my From: lines to read ``First_Last@My.Domain''?
|
||||
|
||||
There are a couple of ways of doing this. This describes
|
||||
using the "user database" code. This is still experimental,
|
||||
and was intended for a different purpose -- however, it does
|
||||
work with a bit of care. It does require that you have the
|
||||
Berkeley "db" package installed (it won't work with DBM).
|
||||
|
||||
First, create your input file. This should have lines like:
|
||||
|
||||
loginname:mailname First_Last
|
||||
First_Last:maildrop loginname
|
||||
|
||||
Install it in (say) /etc/userdb. Create the database:
|
||||
|
||||
makemap btree /etc/userdb.db < /etc/userdb
|
||||
|
||||
You can then create a config file that uses this. You will
|
||||
have to include the following in your .mc file:
|
||||
|
||||
define(confUSERDB_SPEC, /etc/userdb.db)
|
||||
FEATURE(notsticky)
|
||||
----------------------------------------------------------------------
|
||||
* So what was the user database feature intended for?
|
||||
|
||||
The intent was to have all information for a given user
|
||||
(where the user is the unique login name, not an inherently
|
||||
non-unique full name) in one place. This would include phone
|
||||
numbers, addresses, and so forth. The "maildrop" feature is
|
||||
because Berkeley does not use a centralized mail server
|
||||
(there are a number of reasons for this that are mostly
|
||||
historic), and so we need to know where each user gets his or
|
||||
her mail delivered -- i.e., the mail drop.
|
||||
|
||||
We are in the process of setting up our environment so that
|
||||
mail sent to an unqualified "name" goes to that person's
|
||||
preferred maildrop; mail sent to "name@host" goes to that
|
||||
host. The purpose of "FEATURE(notsticky)" is to cause
|
||||
"name@host" to be looked up in the user database for delivery
|
||||
to the maildrop.
|
||||
----------------------------------------------------------------------
|
||||
* Why are you so hostile to using full names for e-mail addresses?
|
||||
|
||||
Because full names are not unique. For example, the computer
|
||||
community has two Andy Tannenbaums and two Peter Deutsches.
|
||||
At one time, Bell Labs had two Stephen R. Bournes with
|
||||
offices a few doors apart. You can create alternative
|
||||
addresses (e.g., Stephen_R_Bourne_2), but that's even worse
|
||||
-- which one of them has to have their name desecrated in
|
||||
this way? And you can bet that one of them will get most of
|
||||
the other person's e-mail.
|
||||
|
||||
So called "full names" are just an attempt to create longer
|
||||
versions of unique names. Rather that lulling people into a
|
||||
sense of security, I'd rather that it be clear that these
|
||||
handles are arbitrary. People should use good user agents
|
||||
that have alias mappings so that they can attach arbitrary
|
||||
names for their personal use to those with whom they
|
||||
correspond (such as the MH alias file).
|
||||
|
||||
Even worse is fuzzy matching in e-mail -- this can make good
|
||||
addresses turn bad. For example, Eric Allman is currently
|
||||
(to the best of our knowledge) the only ``Allman'' at
|
||||
Berkeley, so mail sent to "Allman@Berkeley.EDU" should get to
|
||||
him. But if another Allman ever appears, this address could
|
||||
suddenly become ambiguous. He's been the only Allman at
|
||||
Berkeley for over fifteen years -- to suddenly have this
|
||||
"good address" bounce mail because it is ambiguous would be a
|
||||
heinous wrong.
|
||||
|
||||
Finger services should be as fuzzy as possible (within
|
||||
reason, of course). Mail services should be unique.
|
||||
----------------------------------------------------------------------
|
||||
* Should I use a wildcard MX for my domain?
|
||||
|
||||
If at all possible, no.
|
||||
|
||||
Wildcard MX records have lots of semantic "gotcha"s. For
|
||||
example, they will match a host "unknown.your.domain" -- if
|
||||
you don't explicitly test for unknown hosts in your domain,
|
||||
you will get "config error: mail loops back to myself"
|
||||
errors.
|
||||
|
||||
See RFCs 1535-1537 for more detail and other related (or
|
||||
common) problems.
|
||||
----------------------------------------------------------------------
|
||||
* How can I get sendmail to process messages sent to an account and
|
||||
send the results back to the originator?
|
||||
|
||||
This is a local mailer issue, not a sendmail issue.
|
||||
Depending on what you're doing, look at procmail (mentioned
|
||||
again below), ftpmail, or Majordomo.
|
||||
|
||||
Check your local archie server to see what machine(s) nearest
|
||||
you have the most recent versions of these programs.
|
||||
----------------------------------------------------------------------
|
||||
* How can I get sendmail to deliver local mail to $HOME/.mail
|
||||
instead of into /usr/spool/mail (or /usr/mail)?
|
||||
|
||||
Again, this is a local mailer issue, not a sendmail issue.
|
||||
Either modify your local mailer (source code will be
|
||||
required) or change the program called in the "local" mailer
|
||||
configuration description to be a new program that does this
|
||||
local delivery. One program that is capable of doing this is
|
||||
"procmail", although there are probably many others as well.
|
||||
|
||||
You might be interested in reading the paper ``HLFSD:
|
||||
Delivering Email to your $HOME'' available in the Proceedings
|
||||
of the USENIX System Administration (LISA VII) Conference
|
||||
(November 1993). This is also available via public FTP from
|
||||
ftp.cs.columbia.edu in /pub/hlfsd/{README.hlfsd,hlfsd.ps}.
|
||||
----------------------------------------------------------------------
|
||||
* I'm trying to to get my mail to go into queue only mode, and it
|
||||
delivers the mail interactively anyway. (Or, I'm trying to use
|
||||
the "don't deliver to expensive mailer" flag, and it delivers the
|
||||
mail interactively anyway.) I can see it does it: here's the
|
||||
output of "sendmail -v foo@somehost" (or Mail -v or equivalent).
|
||||
|
||||
The -v flag to sendmail (which is implied by the -v flag to
|
||||
Mail and other programs in that family) tells sendmail to
|
||||
watch the transaction. Since you have explicitly asked to
|
||||
see what's going on, it assumes that you do not want to to
|
||||
auto-queue, and turns that feature off. Remove the -v flag
|
||||
and use a "tail -f" of the log instead to see what's going
|
||||
on.
|
||||
|
||||
If you are trying to use the "don't deliver to expensive
|
||||
mailer" flag (mailer flag "e"), be sure you also turn on
|
||||
global option "c" -- otherwise it ignores the mailer flag.
|
||||
----------------------------------------------------------------------
|
||||
* There are four UUCP mailers listed in the configuration files.
|
||||
Which one should I use?
|
||||
|
||||
The choice is partly a matter of local preferences and what
|
||||
is running at the other end of your UUCP connection. Unlike
|
||||
good protocols that define what will go over the wire, UUCP
|
||||
uses the policy that you should do what is right for the
|
||||
other end; if they change, you have to change. This makes it
|
||||
hard to do the right thing, and discourages people from
|
||||
updating their software. In general, if you can avoid UUCP,
|
||||
please do.
|
||||
|
||||
If you can't avoid it, you'll have to find the version that
|
||||
is closest to what the other end accepts. Following is a
|
||||
summary of the UUCP mailers available.
|
||||
|
||||
uucp-old (obsolete name: "uucp")
|
||||
This is the oldest, the worst (but the closest to UUCP) way
|
||||
of sending messages across UUCP connections. It does
|
||||
bangify everything and prepends $U (your UUCP name) to the
|
||||
sender's address (which can already be a bang path
|
||||
itself). It can only send to one address at a time, so it
|
||||
spends a lot of time copying duplicates of messages. Avoid
|
||||
this if at all possible.
|
||||
|
||||
uucp-new (obsolete name: "suucp")
|
||||
The same as above, except that it assumes that in one rmail
|
||||
command you can specify several recipients. It still has a
|
||||
lot of other problems.
|
||||
|
||||
uucp-dom
|
||||
This UUCP mailer keeps everything as domain addresses.
|
||||
Basically, it uses the SMTP mailer rewriting rules.
|
||||
|
||||
Unfortunately, a lot of UUCP mailer transport agents
|
||||
require bangified addresses in the envelope, although you
|
||||
can use domain-based addresses in the message header. (The
|
||||
envelope shows up as the From_ line on UNIX mail.) So....
|
||||
|
||||
uucp-uudom
|
||||
This is a cross between uucp-new (for the envelope
|
||||
addresses) and uucp-dom (for the header addresses). It
|
||||
bangifies the envelope sender (From_ line in messages)
|
||||
without adding the local hostname, unless there is no host
|
||||
name on the address at all (e.g., "wolf") or the host
|
||||
component is a UUCP host name instead of a domain name
|
||||
("somehost!wolf" instead of "some.dom.ain!wolf").
|
||||
|
||||
Examples:
|
||||
|
||||
We are on host grasp.insa-lyon.fr (UUCP host name "grasp").
|
||||
The following summarizes the sender rewriting for various
|
||||
mailers.
|
||||
|
||||
Mailer sender rewriting in the envelope
|
||||
------ ------ -------------------------
|
||||
uucp-{old,new} wolf grasp!wolf
|
||||
uucp-dom wolf wolf@grasp.insa-lyon.fr
|
||||
uucp-uudom wolf grasp.insa-lyon.fr!wolf
|
||||
|
||||
uucp-{old,new} wolf@fr.net grasp!fr.net!wolf
|
||||
uucp-dom wolf@fr.net wolf@fr.net
|
||||
uucp-uudom wolf@fr.net fr.net!wolf
|
||||
|
||||
uucp-{old,new} somehost!wolf grasp!somehost!wolf
|
||||
uucp-dom somehost!wolf somehost!wolf@grasp.insa-lyon.fr
|
||||
uucp-uudom somehost!wolf grasp.insa-lyon.fr!somehost!wolf
|
||||
|
||||
======================================================================
|
||||
RESOLVING PROBLEMS
|
||||
======================================================================
|
||||
|
||||
* When I compile, I get "undefined symbol inet_aton" messages.
|
||||
|
||||
You've probably replaced your resolver with the version from
|
||||
BIND 4.9.3. You need to compile with -l44bsd in order to get
|
||||
the additional routines.
|
||||
----------------------------------------------------------------------
|
||||
* I'm getting "Local configuration error" messages, such as:
|
||||
|
||||
553 relay.domain.net config error: mail loops back to myself
|
||||
554 <user@domain.net>... Local configuration error
|
||||
|
||||
How can I solve this problem?
|
||||
|
||||
You have asked mail to the domain (e.g., domain.net) to be
|
||||
forwarded to a specific host (in this case, relay.domain.net)
|
||||
by using an MX record, but the relay machine doesn't
|
||||
recognize itself as domain.net. Add domain.net to
|
||||
/etc/sendmail.cw (if you are using FEATURE(use_cw_file)) or
|
||||
add "Cw domain.net" to your configuration file.
|
||||
|
||||
IMPORTANT: Be sure you kill and restart the sendmail daemon
|
||||
after you change the configuration file (for ANY change in
|
||||
the configuration, not just this one):
|
||||
|
||||
kill `head -1 /etc/sendmail.pid`
|
||||
sh -c "`tail -1 /etc/sendmail.pid`"
|
||||
|
||||
NOTA BENE: kill -1 does not work!
|
||||
----------------------------------------------------------------------
|
||||
* When I use sendmail V8 with a Sun config file I get lines like:
|
||||
|
||||
/etc/sendmail.cf: line 273: replacement $3 out of bounds
|
||||
|
||||
the line in question reads:
|
||||
|
||||
R$*<@$%y>$* $1<@$2.LOCAL>$3 user@ether
|
||||
|
||||
what does this mean? How do I fix it?
|
||||
|
||||
V8 doesn't recognize the Sun "$%y" syntax, so as far as it is
|
||||
concerned, there is only a $1 and a $2 (but no $3) in this
|
||||
line. Read Rick McCarty's paper on "Converting Standard Sun
|
||||
Config Files to Sendmail Version 8", in the contrib directory
|
||||
(file "converting.sun.configs") on the sendmail distribution
|
||||
for a full discussion of how to do this.
|
||||
----------------------------------------------------------------------
|
||||
* When I use sendmail V8 on a Sun, I sometimes get lines like:
|
||||
|
||||
/etc/sendmail.cf: line 445: bad ruleset 96 (50 max)
|
||||
|
||||
what does this mean? How do I fix it?
|
||||
|
||||
You're somehow trying to start up the old Sun sendmail (or
|
||||
sendmail.mx) with a sendmail V8 config file, which Sun's
|
||||
sendmail doesn't like. Check your /etc/rc.local, any
|
||||
procedures that have been created to stop and re-start the
|
||||
sendmail processes, etc.... Make sure that you've switched
|
||||
everything over to using the new sendmail. To keep this
|
||||
problem from ever happening again, try the following:
|
||||
|
||||
mv /usr/lib/sendmail /usr/lib/sendmail.old
|
||||
ln -s /usr/local/lib/sendmail.v8 /usr/lib/sendmail
|
||||
mv /usr/lib/sendmail.mx /usr/lib/sendmail.mx.old
|
||||
ln -s /usr/local/lib/sendmail.v8 /usr/lib/sendmail.mx
|
||||
chmod 0000 /usr/lib/sendmail.old
|
||||
chmod 0000 /usr/lib/sendmail.mx.old
|
||||
|
||||
Assuming you have installed sendmail V8 in /usr/local/lib.
|
||||
----------------------------------------------------------------------
|
||||
* When I use sendmail V8 on an IBM RS/6000 running AIX, the system
|
||||
resource controller always reports sendmail as "inoperative" even
|
||||
though it is running. What's wrong?
|
||||
|
||||
IBM's system resource controller is one of their "value
|
||||
added" features to AIX -- it's not a Unix standard. You'll
|
||||
need to either redefine the subsystem to use signals (see
|
||||
chssys(1)) or dump the entire subsystem and invoke sendmail
|
||||
in /etc/rc.tcpip or some other boot script.
|
||||
----------------------------------------------------------------------
|
||||
* When I use sendmail V8 on an Intel x86 machine running Linux, I
|
||||
have some problems. Specifically, I have....
|
||||
|
||||
The current versions of Linux are generally considered to be
|
||||
great for hobbyists and anyone else who wants to learn Unix
|
||||
inside and out, or wants to always have something to do, or
|
||||
wants a machine for light-duty mostly personal use and not
|
||||
high-volume multi-user purposes.
|
||||
|
||||
However, for those who want a system that will just sit in
|
||||
the background and work without a fuss handling thousands of
|
||||
mail messages a day for lots of different users, it's not
|
||||
(yet) stable enough to fit the bill.
|
||||
|
||||
Unfortunately, there are no known shareware/freeware
|
||||
implementations of any operating system that provides the
|
||||
level of stability necessary to handle that kind of load
|
||||
(i.e., there are no free lunches).
|
||||
|
||||
If you're wedded to the Intel x86 platform and want to run
|
||||
sendmail, we suggest you look at commercial implementations
|
||||
of Unix such as Interactive, UnixWare, Solaris, or BSD/386
|
||||
(just a sample of the dozens of different versions of Unix
|
||||
for Intel x86).
|
||||
|
||||
Of all known vendor supported versions of Unix for Intel x86,
|
||||
BSDI's BSD/386 is least expensive and the only one known to
|
||||
currently ship with sendmail V8 pre-installed. Since sendmail
|
||||
V8 is continuing to be developed at UC Berkeley, and BSD/386
|
||||
is a full BSD 4.4 implementation, this is obviously be the most
|
||||
"native" sendmail V8 environment.
|
||||
----------------------------------------------------------------------
|
||||
* When I use sendmail on an Intel x86 machine running OS/2, I have
|
||||
some problems. Specifically, I have....
|
||||
|
||||
The OS/2 port of sendmail is known to have left out huge
|
||||
chunks of the code and functionality of even much older
|
||||
versions of sendmail, in large part because the underlying OS
|
||||
just doesn't have the necessary hooks to make it happen.
|
||||
This port is so broken that we make no attempt to provide any
|
||||
kind of support for it. Try BSDI's BSD/386 instead.
|
||||
----------------------------------------------------------------------
|
||||
* I'm connected to the network via a SLIP/PPP link. Sometimes my
|
||||
sendmail process hangs (although it looks like part of the
|
||||
message has been transfered). Everything else works. What's
|
||||
wrong?
|
||||
|
||||
Most likely, the problem isn't sendmail at all, but the low
|
||||
level network connection. It's important that the MTU
|
||||
(Maximum Transfer Unit) for the SLIP connection be set
|
||||
properly at both ends. If they disagree, large packets will
|
||||
be trashed and the connection will hang.
|
||||
----------------------------------------------------------------------
|
||||
* I just upgraded to 8.x and suddenly I'm getting messages in my
|
||||
syslog of the form "collect: I/O error on connection". What is
|
||||
going wrong?
|
||||
|
||||
Nothing. This is just a diagnosis of a condition that had
|
||||
not been diagnosed before. If you are getting a lot of these
|
||||
from a single host, there is probably some incompatibility
|
||||
between 8.x and that host. If you get a lot of them in
|
||||
general, you may have network problems that are causing
|
||||
connections to get reset.
|
||||
----------------------------------------------------------------------
|
||||
* I just upgraded to 8.x and now when my users try to forward their
|
||||
mail to a program they get an "illegal shell" message and their
|
||||
mail is not delivered. What's wrong?
|
||||
|
||||
In order for people to be able to run a program from their
|
||||
.forward file, 8.x insists that their shell (that is, the
|
||||
shell listed for that user in the passwd entry) be a "valid"
|
||||
shell, meaning a shell listed in /etc/shells. If /etc/shells
|
||||
does not exist, a default list is used, typically consisting
|
||||
of /bin/sh and /bin/csh.
|
||||
|
||||
This is to support environments that may have NFS-shared
|
||||
directories mounted on machines on which users do not have
|
||||
login permission. For example, many people make their
|
||||
file server inaccessible for performance or security
|
||||
reasons; although users have directories, their shell on
|
||||
the server is /usr/local/etc/nologin or some such. If you
|
||||
allowed them to run programs anyway you might as well let
|
||||
them log in.
|
||||
|
||||
If you are willing to let users run programs from their
|
||||
.forward file even though they cannot telnet or rsh in (as
|
||||
might be reasonable if you run smrsh to control the list of
|
||||
programs they can run) then add the line
|
||||
|
||||
/SENDMAIL/ANY/SHELL/
|
||||
|
||||
to /etc/shells. This must be typed exactly as indicated,
|
||||
in caps, with the trailing slash. NOTA BENE: DO NOT
|
||||
list /usr/local/etc/nologin in /etc/shells -- this will
|
||||
open up other security problems.
|
||||
----------------------------------------------------------------------
|
||||
* I just upgraded to 8.x and suddenly connections to the SMTP port
|
||||
take a long time. What is going wrong?
|
||||
|
||||
It's probably something weird in your TCP implementation that
|
||||
makes the IDENT code act oddly. On most systems V8 tries to
|
||||
do a ``callback'' to the connecting host to get a validated
|
||||
user name (see RFC 1413 for detail). If the connecting host
|
||||
does not support such a service it will normally fail quickly
|
||||
with "Connection refused", but certain kinds of packet
|
||||
filters and certain TCP implementations just time out.
|
||||
|
||||
To test this, set the IDENT timeout to zero using
|
||||
``OrIdent=0'' in the configuration file. This will
|
||||
completely disable all use of the IDENT protocol.
|
||||
|
||||
Another possible problem is that you have your name server
|
||||
and/or resolver configured improperly. Make sure that all
|
||||
"nameserver" entries in /etc/resolv.conf point to functional
|
||||
servers. If you are running your own server make certain
|
||||
that all the servers listed in your root cache (usually
|
||||
called something like "/var/namedb/root.cache"; see your
|
||||
/etc/named.boot file to get your value) are up to date.
|
||||
Either of these can cause long delays.
|
||||
----------------------------------------------------------------------
|
||||
* I just upgraded to 8.x and suddenly I get errors such as ``unknown
|
||||
mailer error 5 -- mail: options MUST PRECEDE recipients.'' What is
|
||||
going wrong?
|
||||
|
||||
You need OSTYPE(systype) in your .mc file -- otherwise the
|
||||
configurations use a default that probably disagrees with
|
||||
your local mail system. See cf/README for details.
|
||||
----------------------------------------------------------------------
|
||||
* Under V8, the "From " header gets mysteriously munged when I send
|
||||
to an alias.
|
||||
|
||||
``It's not a bug, it's a feature.'' This happens when you
|
||||
have a "owner-list" alias and you send to "list". V8
|
||||
propagates the owner information into the envelope sender
|
||||
field (which appears as the "From " header on UNIX mail or as
|
||||
the Return-Path: header) so that downstream errors are
|
||||
properly returned to the mailing list owner instead of to the
|
||||
sender. In order to make this appear as sensible as possible
|
||||
to end users, I recommend making the owner point to a
|
||||
"request" address -- for example:
|
||||
|
||||
list: :include:/path/name/list.list
|
||||
owner-list: list-request
|
||||
list-request: eric
|
||||
|
||||
This will make message sent to "list" come out as being "From
|
||||
list-request" instead of "From eric".
|
||||
----------------------------------------------------------------------
|
||||
* I am trying to use MASQUERADE_AS (or the user database) to
|
||||
rewrite from addresses, and although it works in the From: header
|
||||
line, it doesn't work in the envelope (e.g., the "From " line).
|
||||
|
||||
Believe it or not, this is intentional. The interpretation
|
||||
of the standards by the V8 development group was that this
|
||||
was an inappropriate rewriting, and that if the rewriting
|
||||
were incorrect at least the envelope would contain a valid
|
||||
return address. Other people have since described scenarios
|
||||
where the envelope cannot be correct without this rewriting,
|
||||
so 8.7 will have an option to rewrite both header and
|
||||
envelope.
|
||||
----------------------------------------------------------------------
|
||||
* I want to run Sendmail version 8 on my DEC system, but you don't
|
||||
have MAIL11V3 support in sendmail. How do I handle this?
|
||||
|
||||
Get Paul Vixie's reimplementation of the mail11 protocol from
|
||||
gatekeeper.dec.com in /pub/DEC/gwtools.
|
||||
|
||||
Rumour has it that he will be fully integrating into sendmail
|
||||
V8 what little is left of IDA sendmail that is not handled
|
||||
(or handled as well) by V8. No additional information on
|
||||
this project is currently available.
|
||||
----------------------------------------------------------------------
|
||||
* Messages seem to disappear from my queue unsent. When I look in
|
||||
the queue directory I see that they have been renamed from qf* to
|
||||
Qf*, and sendmail doesn't see these.
|
||||
|
||||
If you look closely you should find that the Qf files are
|
||||
owned by users other than root. Since sendmail runs as root
|
||||
it refuses to believe information in non-root-owned qf files,
|
||||
and it renames them to Qf to get them out of the way and make
|
||||
it easy for you to find. The usual cause of this is
|
||||
twofold: first, you have the queue directory world writable
|
||||
(which is probably a mistake -- this opens up other security
|
||||
problems) and someone is calling sendmail with an "unsafe"
|
||||
flag, usually a -o flag that sets an option that could
|
||||
compromise security. When sendmail sees this it gives up
|
||||
setuid root permissions.
|
||||
|
||||
The usual solution is to not use the problematic flags. If
|
||||
you must use them, you have to write a special queue
|
||||
directory and have them processed by the same uid that
|
||||
submitted the job in the first place.
|
||||
----------------------------------------------------------------------
|
||||
@(#)FAQ 8.16 (Berkeley) 9/17/95
|
||||
Send updates to sendmail@sendmail.ORG.
|
||||
--Eric Allman 8/17/96
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
|
||||
K N O W N B U G S I N S E N D M A I L
|
||||
(for 8.7)
|
||||
(for 8.8)
|
||||
|
||||
|
||||
The following are bugs or deficiencies in sendmail that I am aware of
|
||||
|
@ -74,18 +74,8 @@ This list is not guaranteed to be complete.
|
|||
not in the sendmail source code, so I assume it is also a bug
|
||||
in the sockets emulation. (Errno 22 is EINVAL "Invalid Argument"
|
||||
on all the systems I have available, including Solaris 2.x.)
|
||||
|
||||
* Sending user deletion not done properly in :include: lists.
|
||||
|
||||
If you don't have the "m" (me too) option set, then a person
|
||||
sending to a list that contains themselves should not get a copy
|
||||
of the message. However, if that list points to a :include: file
|
||||
that has one address per line, this will break, and the sender
|
||||
will always get a copy of their own message, just as though the
|
||||
"m" option were set.
|
||||
|
||||
You can eliminate this by adding commas at the end of each line
|
||||
of the :include: file.
|
||||
Apparently, this problem is due to linking -lc before -lsocket;
|
||||
if you are having this problem, check your Makefile.
|
||||
|
||||
* Excessive mailing list nesting can run out of file descriptors.
|
||||
|
||||
|
@ -116,4 +106,4 @@ This list is not guaranteed to be complete.
|
|||
allow for 8->7 bit MIME conversions either.
|
||||
|
||||
|
||||
(Version 8.21, last updated 8/27/95)
|
||||
(Version 8.23, last updated 10/15/96)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# @(#)Makefile 8.12 (Berkeley) 5/29/95
|
||||
# @(#)Makefile 8.15 (Berkeley) 9/21/96
|
||||
|
||||
VER= XX
|
||||
SUBDIR= src mailstats makemap praliases cf/cf
|
||||
SUBDIR= src mail.local mailstats makemap praliases smrsh cf/cf
|
||||
FTPDIR= mastodon:/disks/barad-dur/ftp/sendmail/.
|
||||
DISTFILES=sendmail.${VER}.tar.Z sendmail.${VER}.tar.gz \
|
||||
RELEASE_NOTES FAQ KNOWNBUGS
|
||||
|
@ -12,6 +12,11 @@ tar: sccs-check compile-world run-pax
|
|||
sccs-check:
|
||||
sccs check
|
||||
(cd src; sccs check)
|
||||
(cd mail.local; sccs check)
|
||||
(cd mailstats; sccs check)
|
||||
(cd makemap; sccs check)
|
||||
(cd praliases; sccs check)
|
||||
(cd smrsh; sccs check)
|
||||
(cd doc/op; sccs check)
|
||||
(cd doc/intro; sccs check)
|
||||
(cd doc/usenix; sccs check)
|
||||
|
@ -24,7 +29,12 @@ sccs-check:
|
|||
(cd cf/domain; sccs check)
|
||||
|
||||
compile-world:
|
||||
(cd src; ${MAKE})
|
||||
(cd src; sh makesendmail)
|
||||
(cd mail.local; ${MAKE})
|
||||
(cd mailstats; ${MAKE})
|
||||
(cd makemap; ${MAKE})
|
||||
(cd praliases; ${MAKE})
|
||||
(cd smrsh; ${MAKE})
|
||||
(cd doc; PRINTER=ps ${MAKE})
|
||||
(cd doc; chmod 444 op/op.ps intro/intro.ps usenix/usenix.ps)
|
||||
(cd cf/cf; ${MAKE})
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*-
|
||||
* @(#)READ_ME 8.25 (Berkeley) 11/19/95
|
||||
* @(#)READ_ME 8.29 (Berkeley) 9/24/96
|
||||
*/
|
||||
|
||||
SENDMAIL RELEASE 8
|
||||
|
@ -9,6 +9,9 @@ doc/changes/changes.me for a summary of changes since 5.67.
|
|||
|
||||
Report any bugs to sendmail-bugs@sendmail.ORG
|
||||
|
||||
There is a web site at http://WWW.Sendmail.ORG -- see that site for
|
||||
the latest updates.
|
||||
|
||||
******************************************************************
|
||||
** DO NOT USE MAKE to compile sendmail. Instead, cd src and **
|
||||
** use the "makesendmail" shell script. On many environments **
|
||||
|
@ -128,13 +131,20 @@ Important RFCs for electronic mail are:
|
|||
RFC976 UUCP mail format
|
||||
RFC1123 Host requirements (modifies 821, 822, and 974)
|
||||
RFC1413 Identification server
|
||||
RFC1425 SMTP Service Extensions (ESMTP spec)
|
||||
RFC1426 SMTP Service Extension for 8bit-MIMEtransport
|
||||
RFC1427 SMTP Service Extension for Message Size Declaration
|
||||
RFC1869 SMTP Service Extensions (ESMTP spec)
|
||||
RFC1652 SMTP Service Extension for 8bit-MIMEtransport
|
||||
RFC1870 SMTP Service Extension for Message Size Declaration
|
||||
RFC1521 MIME: Multipurpose Internet Mail Extensions
|
||||
RFC1344 Implications of MIME for Internet Mail Gateways
|
||||
RFC1428 Transition of Internet Mail from Just-Send-8 to
|
||||
8-bit SMTP/MIME
|
||||
RFC1891 SMTP Service Extension for Delivery Status Notifications
|
||||
RFC1892 Multipart/Report Content Type for the Reporting of
|
||||
Mail System Administrative Messages
|
||||
RFC1893 Enhanced Mail System Status Codes
|
||||
RFC1894 An Extensible Message Format for Delivery Status
|
||||
Notifications
|
||||
RFC1985 SMTP Service Extension for Remote Message Queue Starting
|
||||
|
||||
Other standards that may be of interest (but which are less directly
|
||||
relevant to sendmail) are:
|
||||
|
|
|
@ -1,11 +1,718 @@
|
|||
SENDMAIL RELEASE NOTES
|
||||
@(#)RELEASE_NOTES 8.7.6.4 (Berkeley) 9/16/96
|
||||
@(#)RELEASE_NOTES 8.8.2.1 (Berkeley) 10/18/96
|
||||
|
||||
|
||||
This listing shows the version of the sendmail binary, the version
|
||||
of the sendmail configuration files, the date of release, and a
|
||||
summary of the changes in that release.
|
||||
|
||||
8.8.2/8.8.2 96/11/18
|
||||
SECURITY: fix a botch in the 7-bit MIME patch; the previous patch
|
||||
changed the code but didn't fix the problem.
|
||||
PORTABILITY FIXES:
|
||||
Solaris: Don't use the system getusershell(3); it can
|
||||
apparently corrupt the heap in some circumstances.
|
||||
Problem found by Ken Pizzini of Spry, Inc.
|
||||
OP.ME: document several mailer flags that were accidently omitted
|
||||
from this document. These flags were F=d, F=j, F=R, and F=9.
|
||||
CONFIG: no changes.
|
||||
|
||||
8.8.1/8.8.1 96/10/17
|
||||
SECURITY: unset all environment variables that the resolver will
|
||||
examine during queue runs and daemon mode. Problem noted
|
||||
by Dan Bernstein of the University of Illinois at Chicago.
|
||||
SECURITY: in some cases an illegal 7-bit MIME-encoded text/plain
|
||||
message could overflow a buffer if it was converted back
|
||||
to 8 bits. This caused core dumps and has the potential
|
||||
for a remote attack. Problem first noted by Gregory Shapiro
|
||||
of WPI.
|
||||
Avoid duplicate deliveries of error messages on systems that don't
|
||||
have flock(2) support. Patch from Motonori Nakamura of
|
||||
Kyoto University.
|
||||
Ignore null FallBackMX (V) options. If this option is null (as
|
||||
opposed to undefined) it can cause "null signature" syserrs
|
||||
on illegal host names.
|
||||
If a Base64 encoded text/plain message has no trailing newline in
|
||||
the encoded text, conversion back to 8 bits will drop the
|
||||
final line. Problem noted by Pierre David.
|
||||
If running with a RunAsUser, sendmail would give bogus "cannot
|
||||
setuid" (or seteuid, or setreuid) messages on some systems.
|
||||
Problem pointed out by Jordan Mendelson of Web Services, Inc.
|
||||
Always print error messages in -bv mode -- previously, -bv would
|
||||
be absolutely silent on errors if the error mode was sent
|
||||
to (say) mail-back. Problem noted by Kyle Jones of UUNET.
|
||||
If -qI/R/S is set (or the ETRN command is used), ignore all long
|
||||
term host status. This is necessary because it is common
|
||||
to do this when you know a host has just come back up.
|
||||
Disallow duplicate HELO/EHLO commands as required by RFC 1651 section
|
||||
4.2. Excessive permissiveness noted by Lee Flight of the
|
||||
University of Leicester.
|
||||
If a service (such as NIS) is specified as the last entry in the
|
||||
service switch, but that service is not compiled in, sendmail
|
||||
would return a temporary failure when an entry was not found
|
||||
in the map. This caused the message to be queued instead of
|
||||
bouncing immediately. Problem noted by Harry Edmon of the
|
||||
University of Washington.
|
||||
PORTABILITY FIXES:
|
||||
Solaris 2.3 had compilation problems in conf.c. Several
|
||||
people pointed this out.
|
||||
NetBSD from Charles Hannum of MIT.
|
||||
AIX4 improvements based on info from Steve Bauer of South
|
||||
Dakota School of Mines & Technology.
|
||||
CONFIG: ``error:code message'' syntax was broken in virtusertable.
|
||||
Patch from Gil Kloepfer Jr.
|
||||
CONFIG: if FEATURE(nocanonify) was specified, hosts in $=M (set
|
||||
using MASQUERADE_DOMAIN) were not masqueraded unless they
|
||||
were also in $=w. Problem noted by Zoltan Basti of
|
||||
Softec.
|
||||
MAIL.LOCAL: patches to compile and link cleanly on AIX. Based
|
||||
on a patch from Eric Hagberg of Morgan Stanley.
|
||||
MAIL.LOCAL: patches to compile on NEXTSTEP. From Patrick Nolan
|
||||
of Stanford via Robert La Ferla.
|
||||
|
||||
8.8.0/8.8.0 96/09/26
|
||||
Under some circumstances, Bcc: headers would not be properly
|
||||
deleted. Pointed out by Jonathan Kamens of OpenVision.
|
||||
Log a warning if the sendmail daemon is invoked without a full
|
||||
pathname, which prevents "kill -1" from working. I was
|
||||
urged to put this in by Andrey A. Chernov of DEMOS (Russia).
|
||||
Fix small buffer overflow. Since the data in this buffer was not
|
||||
read externally, there was no security problem (and in fact
|
||||
probably wouldn't really overflow on most compilers). Pointed
|
||||
out by KIZU takashi of Osaka University.
|
||||
Fix problem causing domain literals such as [1.2.3.4] to be ignored
|
||||
if a FallbackMXHost was specified in the configuration file
|
||||
-- all mail would be sent to the fallback even if the original
|
||||
host was accessible. Pointed out by Munenari Hirayama of
|
||||
NSC (Japan).
|
||||
A message that didn't terminate with a newline would (sometimes) not
|
||||
have the trailing "." added properly in the SMTP dialogue,
|
||||
causing SMTP to hang. Patch from Per Hedeland of Ericsson.
|
||||
The DaemonPortOptions suboption to bind to a particular address was
|
||||
incorrect and nonfunctional due to a misunderstanding of the
|
||||
semantics of binding on a passive socket. Patch from
|
||||
NIIBE Yutaka of Mitsubishi Research Institute.
|
||||
Increase the number of MX hosts for a single name to 100 to better
|
||||
handle the truly huge service providers such as AOL, which
|
||||
has 13 at the moment (and climbing). In order to avoid
|
||||
trashing memory, the buffer for all names has only been
|
||||
slightly increased in size, to 12.8K from 10.2K -- this means
|
||||
that if a single name had 100 MX records, the average size
|
||||
of those records could not exceed 128 bytes. Requested by
|
||||
Brad Knowles of America On Line.
|
||||
Restore use of IDENT returns where the OSTYPE field equals "OTHER".
|
||||
Urged by Dan Bernstein of U.C. Berkeley.
|
||||
Print q_statdate and q_specificity in address structure debugging
|
||||
printout.
|
||||
Expand MCI structure flag bits for debugging output.
|
||||
Support IPv6-style domain literals, which can have colons between
|
||||
square braces.
|
||||
Log open file descriptors for the "cannot dup" messages in deliver();
|
||||
this is an attempt to track down a bug that one person seems
|
||||
to be having (it may be a Solaris bug!).
|
||||
DSN NOTIFY parameters were not properly propogated across queue runs;
|
||||
this caused the NOTIFY info to sometimes be lost. Problem
|
||||
pointed out by Claus Assmann of the
|
||||
Christian-Albrechts-University of Kiel.
|
||||
The statistics gathered in the sendmail.st file were too high; in
|
||||
some cases failures (e.g., user unknown or temporary failure)
|
||||
would count as a delivery as far as the statistics were
|
||||
concerned. Problem noted by Tom Moore of AT&T GIS.
|
||||
Systems that don't have flock() would not send split envelopes in
|
||||
the initial run. Problem pointed out by Leonard Zubkoff of
|
||||
Dandelion Digital.
|
||||
Move buffer overflow checking -- these primarily involve distrusting
|
||||
results that may come from NIS and DNS.
|
||||
4.4-BSD-derived systems, including FreeBSD, NetBSD, and BSD/OS didn't
|
||||
include <paths.h> and hence had the wrong pathnames for a few
|
||||
things like /var/tmp. Reported by Matthew Green.
|
||||
Conditions were reversed for the Priority: header, resulting in all
|
||||
values being interpreted as non-urgent except for non-urgent,
|
||||
which was interpreted as normal. Patch from Bryan Costales.
|
||||
The -o (optional) flag was being ignored on hash and btree maps
|
||||
since 8.7.2. Fix from Bryan Costales.
|
||||
Content-Types listed in class "q" will always be encoded as
|
||||
Quoted-Printable (or more accurately, will never be encoded
|
||||
as base64). The class can have primary types (e.g., "text")
|
||||
or full types (e.g., "text/plain"). Based on a suggestion by
|
||||
Marius Olafsson of the University of Iceland.
|
||||
Define ${envid} to be the original envelope id (from the ESMTP DSN
|
||||
dialogue) so it can be passed to programs in mailers.
|
||||
Define ${bodytype} to be the body type (from the -B flag or the
|
||||
BODY= ESMTP parameter) so it can be passed to programs in
|
||||
mailers.
|
||||
Cause the VRFY command to return 252 instead of 250 unless the F=q
|
||||
flag is set in the mailer descriptor. Suggested by John
|
||||
Myers of CMU.
|
||||
Implement ESMTP ETRN command to flush the queue for a specific host.
|
||||
The command takes a host name; data for that host is
|
||||
immediately (and asynchronously) flushed. Because this shares
|
||||
the -qR implementation, other hosts may be attempted, but
|
||||
there should be no security implications. Implementation
|
||||
from John Beck of InReference, Inc. See RFC 1985 for details.
|
||||
Add three new command line flags to pass in DSN parameters: -V envid
|
||||
(equivalent to ENVID=envid on the MAIL command), -R ret
|
||||
(equivalent to RET=ret on the MAIL command), and -Nnotify
|
||||
(equivalent to NOTIFY=notify on the RCPT command). Note
|
||||
that the -N flag applies to all recipients; there is no way
|
||||
to specify per-address notifications on the command line,
|
||||
nor is there an equivalent for the ORCPT= per-address
|
||||
parameter.
|
||||
Restore LogLevel option to be safe (it can only be increased);
|
||||
apparently I went into paranoid mode between 8.6 and 8.7
|
||||
and made it unsafe. Pointed out by Dabe Murphy of the
|
||||
University of Maryland.
|
||||
New logging on log level 15: all SMTP traffic. Patches from
|
||||
Andrew Gross of San Diego Supercomputer Center.
|
||||
NetInfo property value searching code wasn't stopping when it found
|
||||
a match. This was causing the wrong values to be found (and
|
||||
had a memory leak). Found by Bastian Schleuter of TU-Berlin.
|
||||
Add new F=0 (zero) mailer flag to turn off MX lookups. It was pointed
|
||||
out by Bill Wisner of Electronics for Imaging that you can't
|
||||
use the bracket address form for the MAIL_HUB macro, since
|
||||
that causes the brackets to remain in the envelope recipient
|
||||
address used for delivery. The simple fix (stripping off the
|
||||
brackets in the config file) breaks the use of IP literal
|
||||
addresses. This flag will solve that problem.
|
||||
Add MustQuoteChars option. This is a list of characters that must
|
||||
be quoted if they are found in the phrase part of an address
|
||||
(that is, the full name part). The characters @,;:\()[] are
|
||||
always in this list and cannot be removed. The default is
|
||||
this list plus . and ' to match RFC 822.
|
||||
Add AllowBogusHELO option; if set, sendmail will allow HELO commands
|
||||
that do not include a host name for back compatibility with
|
||||
some stupid SMTP clients. Setting this violates RFC 1123
|
||||
section 5.2.5.
|
||||
Add MaxDaemonChildren option; if this is set, sendmail will start
|
||||
rejecting connections if it has more than this many
|
||||
outstanding children accepting mail. Note that you may
|
||||
see more processes than this because of outgoing mail; this
|
||||
is for incoming connections only.
|
||||
Add ConnectionRateThrottle option. If set to a positive value, the
|
||||
number of incoming SMTP connections that will be permitted
|
||||
in a single second is limited to this number. Connections are
|
||||
not refused during this time, just deferred. The intent is to
|
||||
flatten out demand so that load average limiting can kick in.
|
||||
It is less radical than MaxDaemonChildren, which will stop
|
||||
accepting connections even if all the connections are idle
|
||||
(e.g., due to connection caching).
|
||||
Add Timeout.hoststatus option. This interval (defaulting to 30m)
|
||||
specifies how long cached information about the state of a
|
||||
host will be kept before they are considered stale and the
|
||||
host is retried. If you are using persistent host status
|
||||
(i.e., the HostStatusDirectory option is set) this will apply
|
||||
between runs; otherwise, it applies only within a single queue
|
||||
run and hence is useful only for hosts that have large queues
|
||||
that take a very long time to run.
|
||||
Add SingleLineFromHeader option. If set, From: headers are coerced
|
||||
into being a single line even if they had newlines in them
|
||||
when read. This is to get around a botch in Lotus Notes.
|
||||
Text class maps were totally broken -- if you ever retrieved the last
|
||||
item in a table it would be truncated. Problem noted by
|
||||
Gregory Neil Shapiro of WPI.
|
||||
Extend the lines printed by the mailq command (== the -bp flag) when
|
||||
-v is given to 120 characters; this allows more information
|
||||
to be displayed. Suggested by Gregory Neil Shapiro of WPI.
|
||||
Allow macro definitions (`D' lines) with unquoted commas; previously
|
||||
this was treated as end-of-input. Problem noted by Bryan
|
||||
Costales.
|
||||
The RET= envelope parameter (used for DSNs) wasn't properly written
|
||||
to the queue file. Fix from John Hughes of Atlantic
|
||||
Technologies, Inc.
|
||||
Close /var/tmp/dead.letter after a successful write -- otherwise
|
||||
if this happens in a queue run it can cause nasty delays.
|
||||
Problem noted by Mark Horton of AT&T.
|
||||
If userdb entries pointed to userdb entries, and there were multiple
|
||||
values for a given key, the database cursor would get
|
||||
trashed by the recursive call. Problem noted by Roy Mongiovi
|
||||
of Georgia Tech. Fixed by reading all the values and creating
|
||||
a comma-separated list; thus, the -v output will be somewhat
|
||||
different for this case.
|
||||
Fix buffer allocation problem with Hesiod-based userdb maps when
|
||||
HES_GETMAILHOST is defined. Based on a patch by Betty Lee
|
||||
of Stanford University.
|
||||
When envelopes were split due to aliases with owner- aliases, and
|
||||
there was some error on one of the lists, more than one of
|
||||
the owners would get the message. Problem pointed out by
|
||||
Roy Mongiovi of Georgia Tech.
|
||||
Detect excessive recursion in macro expansions, e.g., $X defined
|
||||
in terms of $Y which is defined in terms of $X. Problem
|
||||
noted by Bryan Costales; patch from Eric Wassenaar.
|
||||
When using F=U to get "ugly UUCP" From_ lines, a buffer could in
|
||||
some cases get trashed causing bogus From_ lines. Fix from
|
||||
Kyle Jones of UUNET.
|
||||
When doing load average initialization, if the nlist call for avenrun
|
||||
failed, the second and subsequent lookups wouldn't notice
|
||||
that fact causing bogus load averages to be returned. Noted
|
||||
by Casper Dik of Sun Holland.
|
||||
Fix problem with incompatibility with some versions of inet_aton that
|
||||
have changed the return value to unsigned, so a check for an
|
||||
error return of -1 doesn't work. Use INADDR_NONE instead.
|
||||
This could cause mail to addresses such as [foo.com] to bounce
|
||||
or get dropped. Problem noted by Christophe Wolfhugel of the
|
||||
Pasteur Institute.
|
||||
DSNs were inconsistent if a failure occured during the DATA phase
|
||||
rather than the RCPT phase: the Action: would be correct, but
|
||||
the detailed status information would be wrong. Problem noted
|
||||
by Bob Snyder of General Electric Company.
|
||||
Add -U command line flag and the XUSR ESMTP extension, both indicating
|
||||
that this is the initial MUA->MTA submission. The flag current
|
||||
does nothing, but in future releases (when MUAs start using
|
||||
these flags) it will probably turn on things like DNS
|
||||
canonification.
|
||||
Default end-of-line string (E= specification on mailer [M] lines)
|
||||
to \r\n on SMTP mailers. Default remains \n on non-SMTP
|
||||
mailers.
|
||||
Change the internal definition for the *file* and *include* mailers
|
||||
to have $u in the argument vectors so that they aren't
|
||||
misinterpreted as SMTP mailers and thus use \r\n line
|
||||
termination. This will affect anyone who has redefined
|
||||
either of these in their configuration file.
|
||||
Don't assume that IDENT servers close the connection after a query;
|
||||
responses can be newline terminated. From Terry Kennedy of
|
||||
St. Peter's College.
|
||||
Avoid core dumps on erroneous configuration files that have
|
||||
$#mailer with nothing following. From Bryan Costales.
|
||||
Avoid null pointer dereference with high debug values in unlockqueue.
|
||||
Fix from Randy Martin of Clemson University.
|
||||
Fix possible buffer overrun when expanding very large macros. Fix
|
||||
from Kyle Jones of UUNET.
|
||||
After 25 EXPN or VRFY commands, start pausing for a second before
|
||||
processing each one. This avoids a certain form of denial
|
||||
of service attack. Potential attack pointed out by Bryan
|
||||
Costales.
|
||||
Allow new named (not numbered!) config file rules to do validity
|
||||
checking on SMTP arguments: check_mail for MAIL commands and
|
||||
check_rcpt for RCPT commands. These rulesets can do anything
|
||||
they want; their result is ignored unless they resolve to the
|
||||
$#error mailer, in which case the indicated message is printed
|
||||
and the command is rejected. Similarly, the check_compat
|
||||
ruleset is called before delivery with "from_addr $| to_addr"
|
||||
(the $| is a meta-symbol used to separate the two addresses);
|
||||
it can give a "this sender can't send to this recipient"
|
||||
notification. Note that this patch allows $| to stand alone
|
||||
in rulesets.
|
||||
Define new macros ${client_name}, ${client_addr}, and ${client_port}
|
||||
that have the name, IP address, and port number (respectively)
|
||||
of the SMTP client (that is, the entity at the other end of
|
||||
the connection. These can be used in (e.g.) check_rcpt to
|
||||
verify that someone isn't trying to relay mail through your
|
||||
host inappropriately. Be sure to use the deferred evaluation
|
||||
form, for example $&{client_name}, to avoid having these bound
|
||||
when sendmail reads the configuration file.
|
||||
Add new config file rule check_relay to check the incoming connection
|
||||
information. Like check_compat, it is passed the host name
|
||||
and host address separated by $| and can reject connections
|
||||
on that basis.
|
||||
Allow IDA-style recursive function calls. Code contributed by Mark
|
||||
Lovell and Paul Vixie.
|
||||
Eliminate the "No ! in UUCP From address!" message" -- instead, create
|
||||
a virtual UUCP address using either a domain address or the $k
|
||||
macro. Based on code contributed by Mark Lovell and Paul
|
||||
Vixie.
|
||||
Add Stanford LDAP map. Requires special libraries that are not
|
||||
included with sendmail. Contributed by Booker C. Bense
|
||||
<bbense@networking.stanford.edu>; contact him for support.
|
||||
See also the src/READ_ME file.
|
||||
Allow -dANSI to turn on ANSI escape sequences in debug output; this
|
||||
puts metasymbols (e.g., $+) in reverse video. Really useful
|
||||
only for debugging deep bits of code where it is important to
|
||||
distinguish between the single-character metasymbol $+ and the
|
||||
two characters $, +.
|
||||
Changed ruleset 89 (executed in dumpstate()) to a named ruleset,
|
||||
debug_dumpstate.
|
||||
Add new UnsafeGroupWrites option; if set, .forward and :include:
|
||||
files that are group writable are considered "unsafe" -- that
|
||||
is, programs and files referenced from such files are not
|
||||
valid recipients.
|
||||
Delete bogosity test for FallBackMX host; this prevented it to be a
|
||||
name that was not in DNS or was a domain-literal. Problem
|
||||
noted by Tom May.
|
||||
Change the introduction to error messages to more clearly delineate
|
||||
permanent from temporary failures; if both existed in a
|
||||
single message it could be confusing. Suggested by John
|
||||
Beck of InReference, Inc.
|
||||
The IngoreDot (i) option didn't work for lines that were terminated
|
||||
with CRLF. Problem noted by Ted Stockwell of Secure
|
||||
Computing Corporation.
|
||||
Add a heuristic to improve the handling of unbalanced `<' signs in
|
||||
message headers. Problem reported by Matt Dillon of Best
|
||||
Internet Communications.
|
||||
Check for bogus characters in the 0200-0237 range; since these are
|
||||
used internally, very strange errors can occur if those
|
||||
characters appear in headers. Problem noted by Anders Gertz
|
||||
of Lysator.
|
||||
Implement 7 -> 8 bit MIME conversions. This only takes place if the
|
||||
recipient mailer has the F=9 flag set, and only works on
|
||||
text/plain body types. Code contributed by Marius Olafsson
|
||||
of the University of Iceland.
|
||||
Special case "postmaster" name so that it is always treated as lower
|
||||
case in alias files regardless of configuration settings;
|
||||
this prevents some potential problems where "Postmaster" or
|
||||
"POSTMASTER" might not match "postmaster". In most cases
|
||||
this change is a no-op.
|
||||
The -o map flag was ignored for text maps. Problem noted by Bryan
|
||||
Costales.
|
||||
The -a map flag was ignored for dequote maps. Problem noted by
|
||||
Bryan Costales.
|
||||
Fix core dump when a lookup of a class "prog" map returns no
|
||||
response. Patch from Bryan Costales.
|
||||
Log instances where sendmail is deferring or rejecting connections
|
||||
on LogLevel 14. Suggested by Kyle Jones of UUNET.
|
||||
Include port number in process title for network daemons. Suggested
|
||||
by Kyle Jones of UUNET.
|
||||
Send ``double bounces'' (errors that occur when sending an error
|
||||
message) to the address indicated in the DoubleBounceAddress
|
||||
option (default: postmaster). Previously they were always
|
||||
sent to postmaster. Suggested by Kyle Jones of UUNET.
|
||||
Add new mode, -bD, that acts like -bd in all respects except that
|
||||
it runs in foreground. This is useful for using with a
|
||||
wrapper that "watches" system services. Suggested by Kyle
|
||||
Jones of UUNET.
|
||||
Fix botch in spacing around (parenthesized) comments in addresses
|
||||
when the comment comes before the address. Patch from
|
||||
Motonori Nakamura of Kyoto University.
|
||||
Use the prefix "Postmaster notify" on the Subject: lines of messages
|
||||
that are being bounced to postmaster, rather than "Returned
|
||||
mail". This permits the person who is postmaster more
|
||||
easily determine what messages are to their role as
|
||||
postmaster versus bounces to mail they actually sent. Based
|
||||
on a suggestion by Motonori Nakamura.
|
||||
Add new value "time" for QueueSortOrder option; this causes the queue
|
||||
to be sorted strictly by the time of submission. Note that
|
||||
this can cause very bad behaviour over slow lines (because
|
||||
large jobs will tend to delay small jobs) and on nodes with
|
||||
heavy traffic (because old things in the queue for hosts that
|
||||
are down delay processing of new jobs). Also, this does not
|
||||
guarantee that jobs will be delivered in submission order
|
||||
unless you also set DeliveryMode=queue. In general, it should
|
||||
probably only be used on the command line, and only in
|
||||
conjunction with -qRhost.domain. In fact, there are very few
|
||||
cases where it should be used at all. Based on an
|
||||
implementation by Motonori Nakamura.
|
||||
If a map lookup in ruleset 5 returns tempfail, queue the message in
|
||||
the same manner as other rulesets. Previously a temporary
|
||||
failure in ruleset 5 was ignored. Patch from Booker Bense
|
||||
of Stanford University.
|
||||
Don't proceed to the next MX host if an SMTP MAIL command returns a
|
||||
5yz (permanent failure) code. The next MX host will still be
|
||||
tried if the connection cannot be opened in the first place
|
||||
or if the MAIL command returns a 4yz (temporary failure) code.
|
||||
(It's hard to know what to do here, since neither RFC 974 nor
|
||||
RFC 1123 specify when to proceed to the next MX host.)
|
||||
Suggested by Jonathan Kamens of OpenVision, Inc.
|
||||
Add new "-t" flag for map definitions (the "K" line in the .cf file).
|
||||
This causes map lookups that get a temporary failure (e.g.,
|
||||
name server failure) to _not_ defer the delivery of the
|
||||
message. This should only be used if your configuration file
|
||||
is prepared to do something sensible in this case. Based on
|
||||
an idea by Gregory Shapiro of WPI.
|
||||
Fix problem finding network interface addresses. Patch from
|
||||
Motonori Nakamura.
|
||||
Don't reject qf entries that are not owned by your effective uid if
|
||||
you are not running setuid; this makes management of certain
|
||||
kinds of firewall setups difficult. Patch suggested by
|
||||
Eamonn Coleman of Qualcomm.
|
||||
Add persistent host status. This keeps the information normally
|
||||
maintained within a single queue run in disk files that are
|
||||
shared between sendmail instances. The HostStatusDirectory
|
||||
is the directory in which the information is maintained. If
|
||||
not set, persistent host status is turned off. If not a full
|
||||
pathname, it is relative to the queue directory. A common
|
||||
value is ".hoststat".
|
||||
There are also two new operation modes:
|
||||
* -bh prints the status of hosts that have had recent
|
||||
connections.
|
||||
* -bH purges the host statuses. No attempt is made to save
|
||||
recent status information.
|
||||
This feature was originally written by Paul Vixie of Vixie
|
||||
Enterprises for KJS and adapted for V8 by Mark Lovell of
|
||||
Bigrock Consulting. Paul's funding of Mark and Mark's patience
|
||||
with my insistence that things fit cleanly into the V8
|
||||
framework is gratefully appreciated.
|
||||
New SingleThreadDelivery option (requires HostStatusDirectory to
|
||||
operate). Avoids letting two sendmails on the local machine
|
||||
open connections to the same remote host at the same time.
|
||||
This reduces load on the other machine, but can cause mail to
|
||||
be delayed (for example, if one sendmail is delivering a huge
|
||||
message, other sendmails won't be able to send even small
|
||||
messages). Also, it requires another file descriptor (for the
|
||||
lock file) per connection, so you may have to reduce
|
||||
ConnectionCacheSize to avoid running out of per-process
|
||||
file descriptors. Based on the persistent host status code
|
||||
contributed by Paul Vixie and Mark Lovell.
|
||||
Allow sending to non-simple files (e.g., /dev/null) even if the
|
||||
SafeFileEnvironment option is set. Problem noted by Bryan
|
||||
Costales.
|
||||
The -qR flag mistakenly matched flags in the "R" line of the queue
|
||||
file. Problem noted by Bryan Costales.
|
||||
If a job was aborted using the interrupt signal (e.g., control-C from
|
||||
the keyboard), on some occasions an empty df file would be
|
||||
left around; these would collect in the queue directory.
|
||||
Problem noted by Bryan Costales.
|
||||
Change the makesendmail script to enhance the search for Makefiles
|
||||
based on release number. For example, on SunOS 5.5.1, it will
|
||||
search for Makefile.SunOS.5.5.1, Makefile.SunOS.5.5, and then
|
||||
Makefile.SunOS.5.x (in addition to the other rules, e.g.,
|
||||
adding $arch). Problem noted by Jason Mastaler of Atlanta
|
||||
Webmasters.
|
||||
When creating maps using "newaliases", always map the keys to lower
|
||||
case when creating the map unless the -f flag is specified on
|
||||
the map itself. Previously this was done based on the F=u
|
||||
flag in the local mailer, which meant you could create aliases
|
||||
that you could never access. Problem noted by Bob Wu of DEC.
|
||||
When a job was read from the queue, the bits causing notification on
|
||||
failure or delay were always set. This caused those
|
||||
notifications to be sent even if NOTIFY=NEVER had been
|
||||
specified. Problem noted by Steve Hubert of the University
|
||||
of Washington, Seattle.
|
||||
Add new configurable routine validate_connection (in conf.c). This
|
||||
lets you decide if you are willing to accept traffic from
|
||||
this host. If it returns FALSE, all SMTP commands will return
|
||||
"550 Access denied". -DTCPWRAPPERS will include support for
|
||||
TCP wrappers; you will need to add -lwrap to the link line.
|
||||
(See src/READ_ME for details.)
|
||||
Don't include the "THIS IS A WARNING MESSAGE ONLY" banner on postmaster
|
||||
bounces. Some people seemed to think that this could be
|
||||
confusing (even though it is true). Suggested by Motonori
|
||||
Nakamura.
|
||||
Add new RunAsUser option; this causes sendmail to do a setuid to that
|
||||
user early in processing to avoid potential security problems.
|
||||
However, this means that all .forward and :include: files must
|
||||
be readable by that user, and on systems that don't support the
|
||||
saved uid bit properly, all files to be written must be
|
||||
writable by that user and all programs will be executed by that
|
||||
user. It is also incompatible with the SafeFileEnvironment
|
||||
option. In other words, it may not actually add much to
|
||||
security. However, it should be useful on firewalls and other
|
||||
places where users don't have accounts and the aliases file is
|
||||
well constrained.
|
||||
Add Timeout.iconnect. This is like Timeout.connect except it is used
|
||||
only on the first attempt to delivery to an address. It could
|
||||
be set to be lower than Timeout.connect on the principle that
|
||||
the mail should go through quickly to responsive hosts; less
|
||||
responsive hosts get to wait for the next queue run.
|
||||
Fix a problem on Solaris that occassionally causes programs
|
||||
(such as vacation) to hang with their standard input connected
|
||||
to a UDP port. It also created some signal handling problems.
|
||||
The problems turned out to be an interaction between vfork(2)
|
||||
and some of the libraries, particularly NIS/NIS+. I am
|
||||
indebted to Tor Egge <tegge@idt.ntnu.no> for this fix.
|
||||
Change user class map to do the same matching that actual delivery
|
||||
will do instead of just a /etc/passwd lookup. This adds
|
||||
fuzzy matching to the user map. Patch from Dan Oscarsson.
|
||||
The Timeout.* options are not safe -- they can be used to create a
|
||||
denial-of-service attack. Problem noted by Christophe
|
||||
Wolfhugel.
|
||||
Don't send PostMasterCopy messages in the event of a "delayed"
|
||||
notification. Suggested by Barry Bouwsma.
|
||||
Don't advertise "VERB" ESMTP extension if the "noexpn" privacy
|
||||
option is set, since this disables VERB mode. Suggested
|
||||
by John Hawkinson of MIT.
|
||||
Complain if the QueueDirectory (Q) option is not set. Problem noted
|
||||
by Motonori Nakamura of Kyoto University.
|
||||
Only queue messages on transient .forward open failures if there
|
||||
were no successful opens. The previous behaviour caused it
|
||||
to queue even if a "fall back" .forward was found. Problem
|
||||
noted by Ann-Kian Yeo of the Dept. of Information Systems
|
||||
and Computer Science (DISCS), NUS, Singapore.
|
||||
Don't do 8->7 bit conversions when bouncing a MIME message that
|
||||
is bouncing because of a MIME error during 8->7 bit conversion;
|
||||
the encapsulated message will bounce again, causing a loop.
|
||||
Problem noted by Steve Hubert of the University of Washington.
|
||||
Create xf (transcript) files using the TempFileMode option value
|
||||
instead of 0644. Suggested by Ann-Kian Yeo of the
|
||||
National University of Singapore.
|
||||
Print errors if setgid/setuid/etc. fail during delivery. This helps
|
||||
detect cases where DefaultUid is set to something that the
|
||||
system can't cope with.
|
||||
PORTABILITY FIXES:
|
||||
Support for AIX/RS 2.2.1 from Mark Whetzel of Western
|
||||
Atlas International.
|
||||
Patches for Intel Paragon OSF/1 1.3 from Leo Bicknell
|
||||
<bicknell@ufp.org>.
|
||||
On DEC OSF/1 3.2 and earlier, the MatchGECOS code would only
|
||||
work on the first recipient of a message due to a
|
||||
bug in the getpwent family. If this is something you
|
||||
use, you can define DEC_OSF_BROKEN_GETPWENT=1 for a
|
||||
workaround. From Maximum Entropy of Sanford C.
|
||||
Bernstein and Associates.
|
||||
FreeBSD 1.1.5.1 uname -r returns a string containing
|
||||
parentheses, which breaks makesendmail. Reported
|
||||
by Piero Serini <piero@strider.ibenet.it>.
|
||||
Sequent DYNIX/ptx 4.0.2 patches from Jack Woolley of
|
||||
Systems and Computer Technology Corporation.
|
||||
Solaris 2.x: omit the UUCP grade parameter (-g flag) because
|
||||
it is system-dependent. Problem noted by J.J. Bailey
|
||||
of Bailey Computer Consulting.
|
||||
Pyramid NILE running DC/OSx support from Earle F. Ake of
|
||||
Hassler Communication Systems Technology, Inc.
|
||||
HP-UX 10.x compile glitches, reported by Anne Brink of the
|
||||
U.S. Army and James Byrne of Harte & Lyne Limited.
|
||||
NetBSD from Matthew Green of the NetBSD crew.
|
||||
SCO 5.x from Keith Reynolds of SCO.
|
||||
IRIX 6.2 from Robert Tarrall of the University of
|
||||
Colorado and Kari Hurtta of the Finnish Meteorological
|
||||
Institute.
|
||||
UXP/DS (Fujitsu/ICL DS/90 series) support from Diego R.
|
||||
Lopez, CICA (Seville).
|
||||
NCR SVR4 MP-RAS 3.x support from Tom Moore of NCR.
|
||||
PTX 3.2.0 from Kenneth Stailey of the US Department of Labor
|
||||
Employment Standards Administration.
|
||||
Altos System V (5.3.1) from Tim Rice of Multitalents.
|
||||
Concurrent Systems Corporation Maxion from Donald R. Laster
|
||||
Jr.
|
||||
NetInfo maps (improved debugging and multi-valued aliases)
|
||||
from Adrian Steinmann of Steinmann Consulting.
|
||||
ConvexOS 11.5 (including SecureWare C2 and the Share Scheduler)
|
||||
from Eric Schnoebelen of Convex.
|
||||
Linux 2.0 mail.local patches from Horst von Brand.
|
||||
NEXTSTEP 3.x compilation from Robert La Ferla.
|
||||
NEXTSTEP 3.x code changes from Allan J. Nathanson of NeXT.
|
||||
Solaris 2.5 configuration fixes for mail.local by Jim Davis
|
||||
of the University of Arizona.
|
||||
Solaris 2.5 has a working setreuid. Noted by David Linn of
|
||||
Vanderbilt University.
|
||||
Solaris changes for praliases, makemap, mailstats, and smrsh.
|
||||
Previously you had to add -DSOLARIS in Makefile.dist;
|
||||
this auto-detects. Based on a patch from Randall
|
||||
Winchester of the University of Maryland.
|
||||
CONFIG: add generic-nextstep3.3.mc file. Contributed by
|
||||
Robert La Ferla of Hot Software.
|
||||
CONFIG: allow mailertables to resolve to ``error:code message''
|
||||
(where "code" is an exit status) on domains (previously
|
||||
worked only on hosts). Patch from Cor Bosman of Xs4all
|
||||
Foundation.
|
||||
CONFIG: hooks for IPv6-style domain literals.
|
||||
CONFIG: predefine ALIAS_FILE and change the prototype file so that
|
||||
if it is undefined the AliasFile option is never set; this
|
||||
should be transparent for most everyone. Suggested by John
|
||||
Myers of CMU.
|
||||
CONFIG: add FEATURE(limited_masquerade). Without this feature, any
|
||||
domain listed in $=w is masqueraded. With it, only those
|
||||
domains listed in a MASQUERADE_DOMAIN macro are masqueraded.
|
||||
CONFIG: add FEATURE(masquerade_entire_domain). This causes
|
||||
masquerading specified by MASQUERADE_DOMAIN to apply to all
|
||||
hosts under those domains as well as the domain headers
|
||||
themselves. For example, if a configuration had
|
||||
MASQUERADE_DOMAIN(foo.com), then without this feature only
|
||||
foo.com would be masqueraded; with it, *.foo.com would be
|
||||
masqueraded as well. Based on an implementation by Richard
|
||||
(Pug) Bainter of U. Texas.
|
||||
CONFIG: add FEATURE(genericstable) to do a more general rewriting of
|
||||
outgoing addresses. Defaults to ``hash -o /etc/genericstable''.
|
||||
Keys are user names; values are outgoing mail addresses. Yes,
|
||||
this does overlap with the user database, and figuring out
|
||||
just when to use which one may be tricky. Based on code
|
||||
contributed by Richard (Pug) Bainter of U. Texas with updates
|
||||
from Per Hedeland of Ericsson.
|
||||
CONFIG: add FEATURE(virtusertable) to do generalized rewriting of
|
||||
incoming addresses. Defaults to ``hash -o /etc/virtusertable''.
|
||||
Keys are either fully qualified addresses or just the host
|
||||
part (with the @ sign). For example, a table containing:
|
||||
info@foo.com foo-info
|
||||
info@bar.com bar-info
|
||||
@baz.org jane@elsewhere.net
|
||||
would send all mail destined for info@foo.com to foo-info
|
||||
(which is presumably an alias), mail addressed to info@bar.com
|
||||
to bar-info, and anything addressed to anyone at baz.org will
|
||||
be sent to jane@elsewhere.net. The names foo.com, bar.com,
|
||||
and baz.org must all be in $=w. Based on discussions with
|
||||
a great many people.
|
||||
CONFIG: add nullclient configurations to define SMTP_MAILER_FLAGS.
|
||||
Suggested by Richard Bainter.
|
||||
CONFIG: add FAX_MAILER_ARGS to tweak the arguments passed to the
|
||||
"fax" mailer.
|
||||
CONFIG: allow mailertable entries to resolve to local:user; this
|
||||
passes the original user@host in to procmail-style local
|
||||
mailers as the "detail" information to allow them to do
|
||||
additional clever processing. From Joe Pruett of
|
||||
Teleport Corporation. Delivery to the original user can
|
||||
be done by specifying "local:" (with nothing after the colon).
|
||||
CONFIG: allow any context that takes "mailer:domain" to also take
|
||||
"mailer:user@domain" to force mailing to the given user;
|
||||
"local:user" can also be used to do local delivery. This
|
||||
applies on *_RELAY and in the mailertable entries. Based
|
||||
on a suggestion by Ribert Kiessling of Easynet.
|
||||
CONFIG: Allow FEATURE(bestmx_is_local) to take an argument that
|
||||
limits the possible domains; this reduces the number of DNS
|
||||
lookups required to support this feature. For example,
|
||||
FEATURE(bestmx_is_local, my.site.com) limits the lookups
|
||||
to domains under my.site.com. Code contributed by Anthony
|
||||
Thyssen <anthony@cit.gu.edu.au>.
|
||||
CONFIG: LOCAL_RULESETS introduces any locally defined rulesets,
|
||||
such as the check_rcpt ruleset. Suggested by Gregory Shapiro
|
||||
of WPI.
|
||||
CONFIG: MAILER_DEFINITIONS introduces any mailer definitions, in the
|
||||
event you have to define local mailers. Suggested by
|
||||
Gregory Shapiro of WPI.
|
||||
CONFIG: fix cases where a three- (or more-) stage route-addr could
|
||||
be misinterpreted as a list:...; syntax. Based on a patch by
|
||||
Vlado Potisk <Vlado_Potisk@tempest.sk>.
|
||||
CONFIG: Fix masquerading of UUCP addresses when the UUCP relay is
|
||||
remotely connected. The address host!user was being
|
||||
converted to host!user@thishost instead of host!user@uurelay.
|
||||
Problem noted by William Gianopoulos of Raytheon Company.
|
||||
CONFIG: add confTO_ICONNECT to set Timeout.iconnect.
|
||||
CONFIG: change FEATURE(redirect) message from "User not local" to
|
||||
"User has moved"; the former wording was confusing if the
|
||||
new address is still on the local host. Based on a suggestion
|
||||
by Andreas Luik.
|
||||
CONFIG: add support in FEATURE(nullclient) for $=E (exposed users).
|
||||
However, the class is not pre-initialized to contain root.
|
||||
Suggested by Gregory Neil Shapiro.
|
||||
CONTRIB: Remove XLA code at the request of the author, Christophe
|
||||
Wolfhugel.
|
||||
CONTRIB: Add re-mqueue.pl, contributed by Paul Pomes of Qualcomm.
|
||||
MAIL.LOCAL: make it possible to compile mail.local on Solaris. Note
|
||||
well: this produces a slightly different mailbox format (no
|
||||
Content-Length: headers), file ownerships and modes are
|
||||
different (not owned by group mail; mode 600 instead of 660),
|
||||
and the local mailer flags will have to be tweaked (make them
|
||||
match bsd4.4) in order to use this mailer. Patches from Paul
|
||||
Hammann of the Missouri Research and Education Network.
|
||||
MAIL.LOCAL: in some cases it could return EX_OK even though there
|
||||
was a delivery error, such as if the ownership on the file
|
||||
was wrong or the mode changed between the initial stat and
|
||||
the open. Problem reported by William Colburn of the New
|
||||
Mexico Institute of Mining and Technology.
|
||||
MAILSTATS: handle zero length files more reliably. Patch from Bryan
|
||||
Costales.
|
||||
MAILSTATS: add man page contributed by Keith Bostic of BSDI.
|
||||
MAKEMAP: The -d flag (to allow duplicate keys) to a btree map wasn't
|
||||
honored. Fix from Michael Scott Shappe.
|
||||
PRALIASES: add man page contributed by Keith Bostic of BSDI.
|
||||
NEW FILES:
|
||||
src/Makefiles/Makefile.AIX.2
|
||||
src/Makefiles/Makefile.IRIX.6.2
|
||||
src/Makefiles/Makefile.maxion
|
||||
src/Makefiles/Makefile.NCR.MP-RAS.3.x
|
||||
src/Makefiles/Makefile.SCO.5.x
|
||||
src/Makefiles/Makefile.UXPDSV20
|
||||
mailstats/mailstats.8
|
||||
praliases/praliases.8
|
||||
cf/cf/generic-nextstep3.3.mc
|
||||
cf/feature/genericstable.m4
|
||||
cf/feature/limited_masquerade.m4
|
||||
cf/feature/masquerade_entire_domain.m4
|
||||
cf/feature/virtusertable.m4
|
||||
cf/ostype/aix2.m4
|
||||
cf/ostype/altos.m4
|
||||
cf/ostype/maxion.m4
|
||||
cf/ostype/solaris2.ml.m4
|
||||
cf/ostype/uxpds.m4
|
||||
contrib/re-mqueue.pl
|
||||
DELETED FILES:
|
||||
src/Makefiles/Makefile.Solaris
|
||||
contrib/xla/README
|
||||
contrib/xla/xla.c
|
||||
RENAMED FILES:
|
||||
src/Makefiles/Makefile.NCR3000 => Makefile.NCR.MP-RAS.2.x
|
||||
src/Makefiles/Makefile.SCO.3.2v4.2 => Makefile.SCO.4.2
|
||||
src/Makefiles/Makefile.UXPDS => Makefile.UXPDSV10
|
||||
src/Makefiles/Makefile.NeXT => Makefile.NeXT.2.x
|
||||
src/Makefiles/Makefile.NEXTSTEP => Makefile.NeXT.3.x
|
||||
|
||||
8.7.6/8.7.3 96/09/17
|
||||
SECURITY: It is possible to force getpwuid to fail when writing the
|
||||
queue file, causing sendmail to fall back to running programs
|
||||
|
@ -18,8 +725,11 @@ summary of the changes in that release.
|
|||
|
||||
8.7.5/8.7.3 96/03/04
|
||||
Fix glitch in 8.7.4 when putting certain internal lines; this can
|
||||
in some case cause connections to hang. Patch from Eric
|
||||
Wassenaar.
|
||||
in some case cause connections to hang or messages to have
|
||||
extra spaces in odd places. Patch from Eric Wassenaar;
|
||||
reports from Eric Hall of Chiron Corporation, Stephen
|
||||
Hansen of Stanford University, Dean Gaudet of HotWired,
|
||||
and others.
|
||||
|
||||
8.7.4/8.7.3 96/02/18
|
||||
SECURITY: In some cases it was still possible for an attacker to
|
||||
|
@ -80,7 +790,7 @@ summary of the changes in that release.
|
|||
to simplify queue management for clustered systems. Suggested
|
||||
by Gregory Neil Shapiro of WPI. The same problem could break
|
||||
MH, which assumes that the SMTP session will succeed (tsk, tsk
|
||||
-- mail gets lost!); this was pointe dout by Stuart Pook of
|
||||
-- mail gets lost!); this was pointed out by Stuart Pook of
|
||||
Infobiogen.
|
||||
Fix possible buffer overflow in munchstring(). This was not a security
|
||||
problem because you couldn't specify any argument to this
|
||||
|
@ -720,7 +1430,8 @@ summary of the changes in that release.
|
|||
"dns" is in the service list for "hosts".
|
||||
Add preliminary support for the ESMTP "DSN" extension (Delivery
|
||||
Status Notifications). DSN notifications override
|
||||
Return-Receipt-To: headers, which are bogus anyhow.
|
||||
Return-Receipt-To: headers, which are bogus anyhow --
|
||||
support for them has been removed.
|
||||
Add T=mts-name-type/address-type/diagnostic-type keyletter to mailer
|
||||
definitions to define the types used in DSN returns for
|
||||
MTA names, addresses, and diagnostics respectively.
|
||||
|
@ -1484,7 +2195,7 @@ summary of the changes in that release.
|
|||
contrib/rcpt-streaming
|
||||
src/Makefiles/Makefile.SunOS.5.x
|
||||
|
||||
8.6.13/8.6.12 95/01/25
|
||||
8.6.13/8.6.12 96/01/25
|
||||
SECURITY: In some cases it was still possible for an attacker to
|
||||
insert newlines into a queue file, thus allowing access to
|
||||
any user (except root).
|
||||
|
@ -2516,7 +3227,8 @@ summary of the changes in that release.
|
|||
is set. Problem noted by P{r (Pell) Emanuelsson.
|
||||
Fix a problem causing the "c" option (don't connect to expensive
|
||||
mailers) to be ignored in SMTP. Problem noted and the
|
||||
solution suggested by Robert Elz of Munnari University.
|
||||
solution suggested by Robert Elz of The University of
|
||||
Melbourne.
|
||||
Improve connection caching algorithm by passing "[host]" to
|
||||
hostsignature, which strips the square brackets and
|
||||
returns the real name. This allows mailertable entries
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
Eric Allman <eric@CS.Berkeley.EDU>
|
||||
|
||||
@(#)README 8.81 (Berkeley) 12/3/95
|
||||
@(#)README 8.106 (Berkeley) 10/12/96
|
||||
|
||||
|
||||
This document describes the sendmail configuration files being used
|
||||
|
@ -13,7 +13,7 @@ not work on other versions.
|
|||
|
||||
These configuration files are probably not as general as previous
|
||||
versions, and don't handle as many of the weird cases automagically.
|
||||
I was able to simplify by them for two reasons. First, the network
|
||||
I was able to simplify them for two reasons. First, the network
|
||||
has become more consistent -- for example, at this point, everyone
|
||||
on the internet is supposed to be running a name server, so hacks to
|
||||
handle NIC-registered hosts can go away. Second, I assumed that a
|
||||
|
@ -158,9 +158,38 @@ definition appropriate for your environment.
|
|||
MAILER(smtp)
|
||||
|
||||
These describe the mailers used at the default CS site site. The
|
||||
local mailer is always included automatically. Beware MAILER
|
||||
declarations should always be last in the configuration file, and
|
||||
MAILER(smtp) should always precede MAILER(uucp).
|
||||
local mailer is always included automatically. Beware: MAILER
|
||||
declarations should always be at the end of the configuration file,
|
||||
and MAILER(smtp) should always precede MAILER(uucp). The general
|
||||
rules are that the order should be:
|
||||
|
||||
VERSIONID
|
||||
OSTYPE
|
||||
DOMAIN
|
||||
FEATURE
|
||||
local macro definitions
|
||||
MAILER
|
||||
LOCAL_RULESET_*
|
||||
|
||||
|
||||
+----------------------------+
|
||||
| A BRIEF INTRODUCTION TO M4 |
|
||||
+----------------------------+
|
||||
|
||||
Sendmail uses the M4 macro processor to ``compile'' the configuration
|
||||
files. The most important thing to know is that M4 is stream-based,
|
||||
that is, it doesn't understand about lines. For this reason, in some
|
||||
places you may see the word ``dnl'', which standards for ``delete
|
||||
through newline''; essentially, it deletes all characters starting
|
||||
at the ``dnl'' up to and including the next newline character. In
|
||||
most cases sendmail uses this only to avoid lots of unnecessary
|
||||
blank lines in the output.
|
||||
|
||||
Other important directives are define(A, B) which defines the macro
|
||||
``A'' to have value ``B''. Macros are expanded as they are read, so
|
||||
one normally quotes both values to prevent expansion. For example,
|
||||
|
||||
define(`SMART_HOST', `smart.foo.com')
|
||||
|
||||
One word of warning: M4 macros are expanded even in lines that appear
|
||||
to be comments. For example, if you have
|
||||
|
@ -251,6 +280,7 @@ SMTP_MAILER_CHARSET [undefined] If defined, messages containing 8-bit data
|
|||
that ARRIVE from an address that resolves to one of
|
||||
the SMTP mailers and which are converted to MIME will
|
||||
be labelled with this character set.
|
||||
UUCP_MAILER_PATH [/usr/bin/uux] The program used to send UUCP mail.
|
||||
UUCP_MAILER_FLAGS [undefined] Flags added to UUCP mailer. Default
|
||||
flags are `DFMhuU' (and `m' for uucp-new mailer,
|
||||
minus `U' for uucp-dom mailer).
|
||||
|
@ -264,12 +294,16 @@ UUCP_MAILER_CHARSET [undefined] If defined, messages containing 8-bit data
|
|||
be labelled with this character set.
|
||||
FAX_MAILER_PATH [/usr/local/lib/fax/mailfax] The program used to
|
||||
submit FAX messages.
|
||||
FAX_MAILER_ARGS [mailfax $u $h $f] The arguments passed to the FAX
|
||||
mailer.
|
||||
FAX_MAILER_MAX [100000] The maximum size message accepted for
|
||||
transmission by FAX.
|
||||
POP_MAILER_PATH [/usr/lib/mh/spop] The pathname of the POP mailer.
|
||||
POP_MAILER_FLAGS [Penu] Flags added to POP mailer. Flags "lsDFM"
|
||||
are always added.
|
||||
POP_MAILER_ARGS [pop $u] The arguments passed to the POP mailer.
|
||||
PROCMAIL_MAILER_PATH [/usr/local/bin/procmail] The path to the procmail
|
||||
program. This is also used by FEATURE(local_procmail).
|
||||
PROCMAIL_MAILER_FLAGS [Shu] Flags added to Procmail mailer. Flags
|
||||
``DFMmn'' are always set.
|
||||
PROCMAIL_MAILER_ARGS [procmail -m $h $f $u] The arguments passed to
|
||||
|
@ -290,6 +324,10 @@ CYRUS_MAILER_PATH [/usr/cyrus/bin/deliver] The progam used to deliver
|
|||
cyrus mail.
|
||||
CYRUS_MAILER_ARGS [deliver -e -m $h -- $u] The arguments passed
|
||||
to deliver cyrus mail.
|
||||
CYRUS_MAILER_MAX [undefined] If set, the maximum size message that
|
||||
will be accepted by the cyrus mailer.
|
||||
CYRUS_MAILER_USER [cyrus:mail] The user and group to become when
|
||||
running the cyrus mailer.
|
||||
CYRUS_BB_MAILER_FLAGS [undefined] The flags used by the cyrusbb
|
||||
mailer. The flags lsDFMnP are always included.
|
||||
CYRUS_BB_MAILER_ARGS [deliver -e -m $u] The arguments passed
|
||||
|
@ -565,6 +603,73 @@ allmasquerade If masquerading is enabled (using MASQUERADE_AS), this
|
|||
namespace on your masquerade host supersets all the
|
||||
local entries.
|
||||
|
||||
limited_masquerade
|
||||
Normally, any hosts listed in $=w are masqueraded. If this
|
||||
feature is given, only the hosts listed in $=M are masqueraded.
|
||||
This is useful if you have several domains with disjoint
|
||||
namespaces hosted on the same machine.
|
||||
|
||||
masquerade_entire_domain
|
||||
If masquerading is enabled (using MASQUERADE_AS) and
|
||||
MASQUERADE_DOMAIN (see below) is set, this feature will
|
||||
cause addresses to be rewritten such that the masquerading
|
||||
domains are actually entire domains to be hidden. All
|
||||
hosts within the masquerading domains will be rewritten
|
||||
to the masquerade name (used in MASQUERADE_AS). For example,
|
||||
if you have:
|
||||
|
||||
MASQUERADE_AS(masq.com)
|
||||
MASQUERADE_DOMAIN(foo.org)
|
||||
MASQUERADE_DOMAIN(bar.com)
|
||||
|
||||
then *foo.org and *bar.com are converted to masq.com. Without
|
||||
this feature, only foo.org and bar.com are masqueraded.
|
||||
|
||||
NOTE: only domains within your jurisdiction and
|
||||
current hierarchy should be masqueraded using this.
|
||||
|
||||
genericstable This feature will cause certain addresses originating in the
|
||||
local domain or a domain listed in $=G to be looked up in a
|
||||
map and turned into another ("generic") form, which can change
|
||||
both the domain name and the user name. This is similar to
|
||||
the userdb functionality. The same types of addresses as for
|
||||
masquerading are looked up, i.e. only header sender addresses
|
||||
unless the allmasquerade and/or masquerade_envelope features
|
||||
are given. The addresses must be in the list of names given
|
||||
by the macros GENERICS_DOMAIN or GENERICS_DOMAIN_FILE
|
||||
(analogously to MASQUERADE_DOMAIN and MASQUERADE_DOMAIN_FILE,
|
||||
see below).
|
||||
|
||||
The argument of FEATURE(genericstable) may be the map
|
||||
defintion; the default map definition is:
|
||||
|
||||
hash -o /etc/genericstable
|
||||
|
||||
The key for this table is either the full address or the
|
||||
unqualified username (the former is tried first); the
|
||||
value is the new user address. If the new user address does
|
||||
not include a domain, $j is used.
|
||||
|
||||
virtusertable A domain-specific form of aliasing, allowing multiple
|
||||
virtual domains to be hosted on one machine. For example,
|
||||
if the virtuser table contained:
|
||||
|
||||
info@foo.com foo-info
|
||||
info@bar.com bar-info
|
||||
@baz.org jane@elsewhere.net
|
||||
|
||||
then mail addressed to info@foo.com will be sent to the
|
||||
address foo-info, mail addressed to info@bar.com will be
|
||||
delivered to bar-info, and mail addressed to anyone at
|
||||
baz.org will be sent to jane@elsewhere.net. All the host
|
||||
names on the left hand side (foo.com, bar.com, and baz.org)
|
||||
must be in $=w. The default map definition is:
|
||||
|
||||
hash -o /etc/virtusertable
|
||||
|
||||
A new definition can be specified as the second argument of
|
||||
the FEATURE macro.
|
||||
|
||||
nodns We aren't running DNS at our site (for example,
|
||||
we are UUCP-only connected). It's hard to consider
|
||||
this a "feature", but hey, it had to go somewhere.
|
||||
|
@ -587,7 +692,7 @@ local_procmail Use procmail as the local mailer. This mailer can
|
|||
normally the +indicator is just tossed, but by default
|
||||
it is passed as the -a argument to procmail. The
|
||||
argument to this feature is the pathname of procmail,
|
||||
which defaults to /usr/local/bin/procmail.
|
||||
which defaults to PROCMAIL_MAILER_PATH.
|
||||
|
||||
bestmx_is_local Accept mail as though locally addressed for any host that
|
||||
lists us as the best possible MX record. This generates
|
||||
|
@ -834,14 +939,17 @@ You can have your host masquerade as another using
|
|||
|
||||
MASQUERADE_AS(host.domain)
|
||||
|
||||
This causes outgoing SMTP mail to be labeled as coming from the
|
||||
This causes mail being sent to be labeled as coming from the
|
||||
indicated domain, rather than $j. One normally masquerades as one
|
||||
of one's own subdomains (for example, it's unlikely that I would
|
||||
choose to masquerade as an MIT site).
|
||||
choose to masquerade as an MIT site). This behaviour is modified by
|
||||
a plethora of FEATUREs; in particular, see masquerade_envelope,
|
||||
allmasquerade, limited_masquerade, and masquerade_entire_domain.
|
||||
|
||||
The masquerade name is not normally canonified, so it is important
|
||||
that it be your One True Name, that is, fully qualified and not a
|
||||
CNAME.
|
||||
CNAME. However, if you use a CNAME, the receiving side may canonify
|
||||
it for you, so don't think you can cheat CNAME mapping this way.
|
||||
|
||||
Normally the only addresses that are masqueraded are those that come
|
||||
from this host (that is, are either unqualified or in $=w, the list
|
||||
|
@ -883,7 +991,7 @@ to have .forward files or aliases. You can do this using
|
|||
define(`LOCAL_RELAY', mailer:hostname)
|
||||
|
||||
The ``mailer:'' can be omitted, in which case the mailer defaults to
|
||||
"smtp". There are some user names that you don't want relayed, perhaps
|
||||
"relay". There are some user names that you don't want relayed, perhaps
|
||||
because of local aliases. A common example is root, which may be
|
||||
locally aliased. You can add entries to this list using
|
||||
|
||||
|
@ -898,13 +1006,13 @@ shared /var/spool/mail scheme, use
|
|||
|
||||
define(`MAIL_HUB', mailer:hostname)
|
||||
|
||||
Again, ``mailer:'' defaults to "smtp". If you define both LOCAL_RELAY
|
||||
Again, ``mailer:'' defaults to "relay". If you define both LOCAL_RELAY
|
||||
and MAIL_HUB _AND_ you have FEATURE(stickyhost), unqualified names will
|
||||
be sent to the LOCAL_RELAY and other local names will be sent to MAIL_HUB.
|
||||
Names in $=L will be delivered locally, so you MUST have aliases or
|
||||
.forward files for them.
|
||||
|
||||
For example, if are on machine mastodon.CS.Berkeley.EDU and you have
|
||||
For example, if you are on machine mastodon.CS.Berkeley.EDU and you have
|
||||
FEATURE(stickyhost), the following combinations of settings will have the
|
||||
indicated effects:
|
||||
|
||||
|
@ -936,6 +1044,12 @@ really want absolutely everything to go to a single central site you will
|
|||
need to unset all the other relays -- or better yet, find or build a
|
||||
minimal config file that does this.
|
||||
|
||||
For duplicate suppression to work properly, the host name is best
|
||||
specified with a terminal dot:
|
||||
|
||||
define(`MAIL_HUB', `host.domain.')
|
||||
note the trailing dot ---^
|
||||
|
||||
|
||||
+-------------------------------+
|
||||
| NON-SMTP BASED CONFIGURATIONS |
|
||||
|
@ -1118,7 +1232,7 @@ for. In particular:
|
|||
version.
|
||||
|
||||
* Make sure that other files that sendmail reads, such as the
|
||||
mailertable, is only writable by trusted system personnel.
|
||||
mailertable, are only writable by trusted system personnel.
|
||||
|
||||
* The queue directory should not be world writable PARTICULARLY
|
||||
if your system allows "file giveaways" (that is, if a non-root
|
||||
|
@ -1319,7 +1433,7 @@ confTRUSTED_USERS Ct class [no default] Names of users to add to
|
|||
the list of trusted users. This list
|
||||
always includes root, uucp, and daemon.
|
||||
See also FEATURE(use_ct_file).
|
||||
confSMTP_MAILER - [smtp] The mailer name used when
|
||||
confSMTP_MAILER - [esmtp] The mailer name used when
|
||||
SMTP connectivity is required.
|
||||
One of "smtp", "smtp8", or "esmtp".
|
||||
confUUCP_MAILER - [uucp-old] The mailer to be used by
|
||||
|
@ -1351,7 +1465,7 @@ confMIN_FREE_BLOCKS MinFreeBlocks [100] Minimum number of free blocks on
|
|||
for the second value now.)
|
||||
confMAX_MESSAGE_SIZE MaxMessageSize [infinite] The maximum size of messages
|
||||
that will be accepted (in bytes).
|
||||
confBLANK_SUB BlankSub [ ] Blank (space) substitution
|
||||
confBLANK_SUB BlankSub [.] Blank (space) substitution
|
||||
character.
|
||||
confCON_EXPENSIVE HoldExpensive [False] Avoid connecting immediately
|
||||
to mailers marked expensive?
|
||||
|
@ -1383,6 +1497,17 @@ confMCI_CACHE_SIZE ConnectionCacheSize
|
|||
[2] Size of open connection cache.
|
||||
confMCI_CACHE_TIMEOUT ConnectionCacheTimeout
|
||||
[5m] Open connection cache timeout.
|
||||
confHOST_STATUS_DIRECTORY HostStatusDirectory
|
||||
[undefined] If set, host status is kept
|
||||
on disk between sendmail runs in the
|
||||
named directory tree. This need not be
|
||||
a full pathname, in which case it is
|
||||
interpreted relative to the queue
|
||||
directory. This option also
|
||||
single-threads connections to each
|
||||
host, i.e., prevents multiple
|
||||
connections to a single server from
|
||||
this client.
|
||||
confUSE_ERRORS_TO* UserErrorsTo [False] Use the Errors-To: header to
|
||||
deliver error messages. This should
|
||||
not be necessary because of general
|
||||
|
@ -1411,6 +1536,18 @@ confSAFE_QUEUE* SuperSafe [True] Commit all messages to disk
|
|||
before forking.
|
||||
confTO_INITIAL Timeout.initial [5m] The timeout waiting for a response
|
||||
on the initial connect.
|
||||
confTO_CONNECT Timeout.connect [0] The timeout waiting for an initial
|
||||
connect() to complete. This can only
|
||||
shorten connection timeouts; the kernel
|
||||
silently enforces an absolute maximum
|
||||
(which varies depending on the system).
|
||||
confTO_ICONNECT Timeout.iconnect
|
||||
[undefined] Like Timeout.connect, but
|
||||
applies only to the very first attempt
|
||||
to connect to a host in a message.
|
||||
This allows a single very fast pass
|
||||
followed by more careful delivery
|
||||
attempts in the future.
|
||||
confTO_HELO Timeout.helo [5m] The timeout waiting for a response
|
||||
to a HELO or EHLO command.
|
||||
confTO_MAIL Timeout.mail [10m] The timeout waiting for a
|
||||
|
@ -1469,6 +1606,13 @@ confTO_QUEUEWARN_NONURGENT
|
|||
Timeout.queuewarn.non-urgent
|
||||
[undefined] As above, for non-urgent
|
||||
(low) priority messages.
|
||||
confTO_HOSTSTATUS Timeout.hoststatus
|
||||
[30m] How long information about host
|
||||
statuses will be maintained before it
|
||||
is considered stale and the host should
|
||||
be retried. This applies both within
|
||||
a single queue run and to persistent
|
||||
information (see below).
|
||||
confTIME_ZONE TimeZoneSpec [USE_SYSTEM] Time zone info -- can be
|
||||
USE_SYSTEM to use the system's idea,
|
||||
USE_TZ to use the user's TZ envariable,
|
||||
|
@ -1486,6 +1630,19 @@ confQUEUE_LA QueueLA [8] Load average at which queue-only
|
|||
function kicks in.
|
||||
confREFUSE_LA RefuseLA [12] Load average at which incoming
|
||||
SMTP connections are refused.
|
||||
confMAX_DAEMON_CHILDREN MaxDaemonChildren
|
||||
[undefined] The maximum number of
|
||||
children the daemon will permit. After
|
||||
this number, connections will be
|
||||
rejected. If not set or <= 0, there is
|
||||
no limit.
|
||||
confCONNECTION_RATE_THROTTLE ConnectionRateThrottle
|
||||
[undefined] The maximum number of
|
||||
connections permitted per second.
|
||||
After this many connections are
|
||||
accepted, further connections will be
|
||||
delayed. If not set or <= 0, there is
|
||||
no limit.
|
||||
confWORK_RECIPIENT_FACTOR
|
||||
RecipientFactor [30000] Cost of each recipient.
|
||||
confSEPARATE_PROC ForkEachJob [False] Run all deliveries in a separate
|
||||
|
@ -1585,6 +1742,39 @@ confDONT_INIT_GROUPS DontInitGroups [False] If set, the initgroups(3)
|
|||
this, agents run on behalf of users
|
||||
will only have their primary
|
||||
(/etc/passwd) group permissions.
|
||||
confUNSAFE_GROUP_WRITES UnsafeGroupWrites
|
||||
[False] If set, group-writable
|
||||
:include: and .forward files are
|
||||
considered "unsafe", that is, programs
|
||||
and files cannot be directly referenced
|
||||
from such files. World-writable files
|
||||
are always considered unsafe.
|
||||
confDOUBLE_BOUNCE_ADDRESS DoubleBounceAddress
|
||||
[postmaster] If an error occurs when
|
||||
sending an error message, send that
|
||||
"double bounce" error message to this
|
||||
address.
|
||||
confRUN_AS_USER RunAsUser [undefined] If set, become this user
|
||||
when reading and delivering mail.
|
||||
Causes all file reads (e.g., .forward
|
||||
and :include: files) to be done as
|
||||
this user. Also, all programs will
|
||||
be run as this user, and all output
|
||||
files will be written as this user.
|
||||
Intended for use only on firewalls
|
||||
where users do not have accounts.
|
||||
confSINGLE_THREAD_DELIVERY SingleThreadDelivery
|
||||
[False] If this option and the
|
||||
HostStatusDirectory option are both
|
||||
set, single thread deliveries to other
|
||||
hosts. That is, don't allow any two
|
||||
sendmails on this host to connect
|
||||
simultaneously to any other single
|
||||
host. This can slow down delivery in
|
||||
some cases, in particular since a
|
||||
cached but otherwise idle connection
|
||||
to a host will prevent other sendmails
|
||||
from connecting to the other host.
|
||||
|
||||
See also the description of OSTYPE for some parameters that can be
|
||||
tweaked (generally pathnames to mailers).
|
||||
|
@ -1710,12 +1900,12 @@ MACROS
|
|||
CLASSES
|
||||
|
||||
A
|
||||
B
|
||||
B domains that are candidates for bestmx lookup
|
||||
C
|
||||
D
|
||||
E addresses that should not seem to come from $M
|
||||
F hosts we forward for
|
||||
G
|
||||
G domains that should be looked up in genericstable
|
||||
H
|
||||
I
|
||||
J
|
||||
|
@ -1736,6 +1926,7 @@ CLASSES
|
|||
Y locally connected smart UUCP hosts
|
||||
Z locally connected domain-ized UUCP hosts
|
||||
. the class containing only a dot
|
||||
[ the class containing only a left bracket
|
||||
|
||||
|
||||
M4 DIVERSIONS
|
||||
|
|
|
@ -44,7 +44,8 @@ divert(-1)
|
|||
# will be forwarded to that machine.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)chez.cs.mc 8.5 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)chez.cs.mc 8.6 (Berkeley) 3/23/96')
|
||||
OSTYPE(bsd4.4)dnl
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
define(`LOCAL_RELAY', vangogh.CS.Berkeley.EDU)dnl
|
||||
|
|
|
@ -48,7 +48,8 @@ divert(-1)
|
|||
# Other than these, it should never contain any other lines.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)clientproto.mc 8.6 (Berkeley) 8/16/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)clientproto.mc 8.7 (Berkeley) 3/23/96')
|
||||
|
||||
OSTYPE(unknown)
|
||||
FEATURE(nullclient, mailhost.$m)
|
||||
|
|
|
@ -43,7 +43,8 @@ divert(-1)
|
|||
# to a name of your own choosing.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)cs-hpux10.mc 8.3 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)cs-hpux10.mc 8.4 (Berkeley) 3/23/96')
|
||||
OSTYPE(hpux10)dnl
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
define(`MAIL_HUB', mailspool.CS.Berkeley.EDU)dnl
|
||||
|
|
|
@ -43,7 +43,8 @@ divert(-1)
|
|||
# to a name of your own choosing.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)cs-hpux9.mc 8.4 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)cs-hpux9.mc 8.5 (Berkeley) 3/23/96')
|
||||
OSTYPE(hpux9)dnl
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
define(`MAIL_HUB', mailspool.CS.Berkeley.EDU)dnl
|
||||
|
|
|
@ -43,7 +43,8 @@ divert(-1)
|
|||
# to a name of your own choosing.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)cs-osf1.mc 8.3 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)cs-osf1.mc 8.4 (Berkeley) 3/23/96')
|
||||
OSTYPE(osf1)dnl
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -43,7 +43,8 @@ divert(-1)
|
|||
# to a name of your own choosing.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)cs-solaris2.mc 8.2 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)cs-solaris2.mc 8.3 (Berkeley) 3/23/96')
|
||||
OSTYPE(solaris2)dnl
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -43,7 +43,8 @@ divert(-1)
|
|||
# to a name of your own choosing.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)cs-sunos4.1.mc 8.3 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)cs-sunos4.1.mc 8.4 (Berkeley) 3/23/96')
|
||||
OSTYPE(sunos4.1)dnl
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -43,7 +43,8 @@ divert(-1)
|
|||
# to a name of your own choosing.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)cs-ultrix4.mc 8.3 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)cs-ultrix4.mc 8.4 (Berkeley) 3/23/96')
|
||||
OSTYPE(ultrix4)dnl
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -26,7 +26,8 @@ divert(-1)
|
|||
# exclusively for local mail.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)cyrusproto.mc 8.2 (Carnegie Mellon) @(#)cyrusproto.mc 8.2')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)cyrusproto.mc 8.3 (Carnegie Mellon) @(#)cyrusproto.mc 8.3')
|
||||
define(`confBIND_OPTS',`-DNSRCH -DEFNAMES')
|
||||
FEATURE(nouucp)
|
||||
FEATURE(nocanonify)
|
||||
|
|
|
@ -41,7 +41,8 @@ divert(-1)
|
|||
# and do the modifications there.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)generic-bsd4.4.mc 8.1 (Berkeley) 9/12/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)generic-bsd4.4.mc 8.2 (Berkeley) 3/23/96')
|
||||
OSTYPE(bsd4.4)dnl
|
||||
DOMAIN(generic)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -40,7 +40,8 @@ divert(-1)
|
|||
# and do the modifications there.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)generic-hpux10.mc 8.2 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)generic-hpux10.mc 8.3 (Berkeley) 3/23/96')
|
||||
OSTYPE(hpux10)dnl
|
||||
DOMAIN(generic)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -40,7 +40,8 @@ divert(-1)
|
|||
# and do the modifications there.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)generic-hpux9.mc 8.2 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)generic-hpux9.mc 8.3 (Berkeley) 3/23/96')
|
||||
OSTYPE(hpux9)dnl
|
||||
DOMAIN(generic)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
48
usr.sbin/sendmail/cf/cf/generic-nextstep3.3.mc
Normal file
48
usr.sbin/sendmail/cf/cf/generic-nextstep3.3.mc
Normal file
|
@ -0,0 +1,48 @@
|
|||
divert(-1)
|
||||
#
|
||||
# Copyright (c) 1983 Eric P. Allman
|
||||
# Copyright (c) 1988, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
|
||||
#
|
||||
# This is a generic configuration file for NEXTSTEP 3.3 systems.
|
||||
# It has support for local and SMTP mail only. If you want to
|
||||
# customize it, copy it to a name appropriate for your environment
|
||||
# and do the modifications there.
|
||||
#
|
||||
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)generic-nextstep3.3.mc 8.2 (Berkeley) 3/23/96')
|
||||
OSTYPE(nextstep)dnl
|
||||
DOMAIN(generic)dnl
|
||||
MAILER(local)dnl
|
||||
MAILER(smtp)dnl
|
|
@ -40,7 +40,8 @@ divert(-1)
|
|||
# and do the modifications there.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)generic-osf1.mc 8.2 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)generic-osf1.mc 8.3 (Berkeley) 3/23/96')
|
||||
OSTYPE(osf1)dnl
|
||||
DOMAIN(generic)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -40,7 +40,8 @@ divert(-1)
|
|||
# and do the modifications there.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)generic-solaris2.mc 8.2 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)generic-solaris2.mc 8.3 (Berkeley) 3/23/96')
|
||||
OSTYPE(solaris2)dnl
|
||||
DOMAIN(generic)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -40,7 +40,8 @@ divert(-1)
|
|||
# and do the modifications there.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)generic-sunos4.1.mc 8.2 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)generic-sunos4.1.mc 8.3 (Berkeley) 3/23/96')
|
||||
OSTYPE(sunos4.1)dnl
|
||||
DOMAIN(generic)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -40,7 +40,8 @@ divert(-1)
|
|||
# and do the modifications there.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)generic-ultrix4.mc 8.2 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)generic-ultrix4.mc 8.3 (Berkeley) 3/23/96')
|
||||
OSTYPE(ultrix4)dnl
|
||||
DOMAIN(generic)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -42,7 +42,8 @@ divert(-1)
|
|||
# This file is for the backup CS Division mail server.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)huginn.cs.mc 8.6 (Berkeley) 8/25/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)huginn.cs.mc 8.7 (Berkeley) 3/23/96')
|
||||
OSTYPE(hpux9)dnl
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
MASQUERADE_AS(CS.Berkeley.EDU)dnl
|
||||
|
|
|
@ -42,7 +42,8 @@ divert(-1)
|
|||
# This file is for the primary CS Division mail server.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)mail.cs.mc 8.9 (Berkeley) 8/25/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)mail.cs.mc 8.10 (Berkeley) 3/23/96')
|
||||
OSTYPE(ultrix4)dnl
|
||||
DOMAIN(Berkeley.EDU)dnl
|
||||
MASQUERADE_AS(CS.Berkeley.EDU)dnl
|
||||
|
|
|
@ -42,7 +42,8 @@ divert(-1)
|
|||
# This file is for the primary EECS mail server.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)mail.eecs.mc 8.9 (Berkeley) 8/25/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)mail.eecs.mc 8.10 (Berkeley) 3/23/96')
|
||||
OSTYPE(ultrix4)dnl
|
||||
DOMAIN(EECS.Berkeley.EDU)dnl
|
||||
MASQUERADE_AS(EECS.Berkeley.EDU)dnl
|
||||
|
|
|
@ -44,7 +44,8 @@ divert(-1)
|
|||
# for back compatibility.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)mailspool.cs.mc 8.3 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)mailspool.cs.mc 8.4 (Berkeley) 3/23/96')
|
||||
OSTYPE(sunos4.1)dnl
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -44,7 +44,8 @@ divert(-1)
|
|||
# will be forwarded to that machine.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)python.cs.mc 8.3 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)python.cs.mc 8.4 (Berkeley) 3/23/96')
|
||||
OSTYPE(bsd4.4)dnl
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
define(`LOCAL_RELAY', vangogh.CS.Berkeley.EDU)dnl
|
||||
|
|
|
@ -43,7 +43,8 @@ divert(-1)
|
|||
# to a name of your own choosing.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)s2k-osf1.mc 8.3 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)s2k-osf1.mc 8.4 (Berkeley) 3/23/96')
|
||||
OSTYPE(osf1)dnl
|
||||
DOMAIN(S2K.Berkeley.EDU)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -43,7 +43,8 @@ divert(-1)
|
|||
# to a name of your own choosing.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)s2k-ultrix4.mc 8.3 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)s2k-ultrix4.mc 8.4 (Berkeley) 3/23/96')
|
||||
OSTYPE(ultrix4)dnl
|
||||
DOMAIN(S2K.Berkeley.EDU)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -46,7 +46,8 @@ divert(-1)
|
|||
# will not trash your changes.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)tcpproto.mc 8.4 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)tcpproto.mc 8.5 (Berkeley) 3/23/96')
|
||||
OSTYPE(unknown)
|
||||
FEATURE(nouucp)
|
||||
MAILER(local)
|
||||
|
|
|
@ -41,7 +41,8 @@ divert(-1)
|
|||
# `SITECONFIG'. See also ucbvax.mc.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)ucbarpa.mc 8.3 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)ucbarpa.mc 8.4 (Berkeley) 3/23/96')
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
OSTYPE(bsd4.4)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -42,7 +42,8 @@ divert(-1)
|
|||
# `SITECONFIG' for routing of UUCP within your domain.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)ucbvax.mc 8.5 (Berkeley) 8/25/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)ucbvax.mc 8.6 (Berkeley) 3/23/96')
|
||||
OSTYPE(bsd4.3)
|
||||
DOMAIN(CS.Berkeley.EDU)
|
||||
MASQUERADE_AS(CS.Berkeley.EDU)
|
||||
|
|
|
@ -46,7 +46,8 @@ divert(-1)
|
|||
# will not trash your changes.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)uucpproto.mc 8.5 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)uucpproto.mc 8.6 (Berkeley) 3/23/96')
|
||||
OSTYPE(unknown)
|
||||
FEATURE(nodns)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -43,7 +43,8 @@ divert(-1)
|
|||
# set up (to stress sendmail) and accepts mail for some other machines.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)vangogh.cs.mc 8.4 (Berkeley) 8/6/95')
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)vangogh.cs.mc 8.5 (Berkeley) 3/23/96')
|
||||
DOMAIN(CS.Berkeley.EDU)dnl
|
||||
OSTYPE(bsd4.4)dnl
|
||||
MAILER(local)dnl
|
||||
|
|
|
@ -41,8 +41,7 @@ divert(-1)
|
|||
# files.
|
||||
#
|
||||
divert(0)
|
||||
VERSIONID(`@(#)generic.m4 8.2 (Berkeley) 4/21/95')
|
||||
VERSIONID(`@(#)generic.m4 8.3 (Berkeley) 3/24/96')
|
||||
define(`confFORWARD_PATH', `$z/.forward.$w:$z/.forward')dnl
|
||||
define(`confCW_FILE', `-o /etc/sendmail.cw')dnl
|
||||
FEATURE(redirect)dnl
|
||||
FEATURE(use_cw_file)dnl
|
||||
|
|
|
@ -34,12 +34,16 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)bestmx_is_local.m4 8.2 (Berkeley) 10/29/95')
|
||||
VERSIONID(`@(#)bestmx_is_local.m4 8.3 (Berkeley) 5/11/96')
|
||||
divert(-1)
|
||||
|
||||
LOCAL_CONFIG
|
||||
# turn on bestMX lookup table
|
||||
Kbestmx bestmx
|
||||
|
||||
# limit bestmx to these domains
|
||||
CB`'_ARG_
|
||||
|
||||
LOCAL_NET_CONFIG
|
||||
|
||||
# If we are the best MX for a site, then we want to accept
|
||||
|
@ -50,9 +54,13 @@ LOCAL_NET_CONFIG
|
|||
# Warning: this may generate a lot of extra DNS traffic -- a
|
||||
# lower cost method is to list all the expected best MX hosts
|
||||
# in $=w. This should be fine (and easier to administer) for
|
||||
# low to medium traffic hosts.
|
||||
# low to medium traffic hosts. If you use the limited bestmx
|
||||
# by passing in a set of possible domains it will improve things.
|
||||
|
||||
ifelse(_ARG_, `', `', `#')dnl unlimited bestmx
|
||||
R$* < @ $* > $* $: $1 < @ $2 @@ $(bestmx $2 $) > $3
|
||||
ifelse(_ARG_, `', `#', `')dnl limit bestmx to $=B
|
||||
R$* < @ $* $=B > $* $: $1 < @ $2 @@ $(bestmx $2 $3 $) > $4
|
||||
R$* $=O $* < @ $* @@ $=w . > $* $@ $>97 $1 $2 $3
|
||||
R$* < @ $* @@ $=w . > $* $#local $: $1
|
||||
R$* < @ $* @@ $* > $* $: $1 < @ $2 > $4
|
||||
|
|
40
usr.sbin/sendmail/cf/feature/genericstable.m4
Normal file
40
usr.sbin/sendmail/cf/feature/genericstable.m4
Normal file
|
@ -0,0 +1,40 @@
|
|||
divert(-1)
|
||||
#
|
||||
# Copyright (c) 1983 Eric P. Allman
|
||||
# Copyright (c) 1988, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)genericstable.m4 8.1 (Berkeley) 2/11/96')
|
||||
divert(-1)
|
||||
|
||||
define(`GENERICS_TABLE', ifelse(_ARG_, `', `hash -o /etc/genericstable', `_ARG_'))dnl
|
40
usr.sbin/sendmail/cf/feature/limited_masquerade.m4
Normal file
40
usr.sbin/sendmail/cf/feature/limited_masquerade.m4
Normal file
|
@ -0,0 +1,40 @@
|
|||
divert(-1)
|
||||
#
|
||||
# Copyright (c) 1983 Eric P. Allman
|
||||
# Copyright (c) 1988, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)limited_masquerade.m4 8.1 (Berkeley) 2/11/96')
|
||||
divert(-1)
|
||||
|
||||
define(`_LIMITED_MASQUERADE_', 1)
|
|
@ -34,11 +34,14 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)local_procmail.m4 8.3 (Berkeley) 10/29/95')
|
||||
VERSIONID(`@(#)local_procmail.m4 8.5 (Berkeley) 2/12/96')
|
||||
divert(-1)
|
||||
|
||||
define(`PROCMAIL_PATH',
|
||||
ifelse(_ARG_, `', `/usr/local/bin/procmail', `_ARG_'))
|
||||
define(`LOCAL_MAILER_PATH',
|
||||
ifelse(_ARG_, `',
|
||||
ifdef(`PROCMAIL_MAILER_PATH',
|
||||
PROCMAIL_MAILER_PATH,
|
||||
`/usr/local/bin/procmail'),
|
||||
_ARG_))
|
||||
define(`LOCAL_MAILER_FLAGS', `SPfhn')
|
||||
define(`LOCAL_MAILER_PATH', PROCMAIL_PATH)
|
||||
define(`LOCAL_MAILER_ARGS', `procmail -Y -a $h -d $u')
|
||||
|
|
40
usr.sbin/sendmail/cf/feature/masquerade_entire_domain.m4
Normal file
40
usr.sbin/sendmail/cf/feature/masquerade_entire_domain.m4
Normal file
|
@ -0,0 +1,40 @@
|
|||
divert(-1)
|
||||
#
|
||||
# Copyright (c) 1983 Eric P. Allman
|
||||
# Copyright (c) 1988, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)masquerade_entire_domain.m4 8.1 (Berkeley) 2/11/96')
|
||||
divert(-1)
|
||||
|
||||
define(`_MASQUERADE_ENTIRE_DOMAIN_', 1)
|
|
@ -45,7 +45,7 @@ POPDIVERT
|
|||
# sendmail.
|
||||
#
|
||||
|
||||
VERSIONID(`@(#)nullclient.m4 8.6 (Berkeley) 6/29/95')
|
||||
VERSIONID(`@(#)nullclient.m4 8.7 (Berkeley) 2/11/96')
|
||||
|
||||
PUSHDIVERT(6)
|
||||
# hub host (to which all mail is sent)
|
||||
|
@ -65,7 +65,8 @@ ifdef(`confRELAY_MAILER',,
|
|||
`define(`confRELAY_MAILER', `nullclient')')dnl
|
||||
ifdef(`confFROM_HEADER',,
|
||||
`define(`confFROM_HEADER', <$g>)')dnl
|
||||
ifdef(`SMTP_MAILER_ARGS',, `define(`SMTP_MAILER_ARGS', `IPC $h')')dnl
|
||||
|
||||
Mnullclient, P=[IPC], F=CONCAT(mDFMuXa, SMTP_MAILER_FLAGS),ifdef(`SMTP_MAILER_MAX', ` M=SMTP_MAILER_MAX,')
|
||||
A=IPC $h
|
||||
A=SMTP_MAILER_ARGS
|
||||
POPDIVERT
|
||||
|
|
|
@ -34,7 +34,7 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)redirect.m4 8.4 (Berkeley) 6/25/95')
|
||||
VERSIONID(`@(#)redirect.m4 8.5 (Berkeley) 8/17/96')
|
||||
divert(-1)
|
||||
|
||||
|
||||
|
@ -42,7 +42,7 @@ PUSHDIVERT(3)
|
|||
# addresses sent to foo@host.REDIRECT will give a 551 error code
|
||||
R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} >
|
||||
R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
|
||||
R$* < @ $+ .REDIRECT. > < $- > $# error $@ 5.1.1 $: "551 User not local; please try " <$1@$2>
|
||||
R$* < @ $+ .REDIRECT. > < $- > $# error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2>
|
||||
POPDIVERT
|
||||
|
||||
PUSHDIVERT(6)
|
||||
|
|
40
usr.sbin/sendmail/cf/feature/virtusertable.m4
Normal file
40
usr.sbin/sendmail/cf/feature/virtusertable.m4
Normal file
|
@ -0,0 +1,40 @@
|
|||
divert(-1)
|
||||
#
|
||||
# Copyright (c) 1983 Eric P. Allman
|
||||
# Copyright (c) 1988, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)virtusertable.m4 8.1 (Berkeley) 2/11/96')
|
||||
divert(-1)
|
||||
|
||||
define(`VIRTUSER_TABLE', ifelse(_ARG_, `', `hash -o /etc/virtusertable', `_ARG_'))dnl
|
|
@ -85,9 +85,14 @@ define(`LOCAL_RULE_2',
|
|||
##########################################
|
||||
|
||||
S2
|
||||
')
|
||||
define(`LOCAL_RULESETS',
|
||||
`divert(9)
|
||||
|
||||
')
|
||||
define(`LOCAL_RULE_3', `divert(2)')
|
||||
define(`LOCAL_CONFIG', `divert(6)')
|
||||
define(`MAILER_DEFINITIONS', `divert(7)')
|
||||
define(`LOCAL_NET_CONFIG', `define(`_LOCAL_RULES_', 1)divert(1)')
|
||||
define(`UUCPSMTP', `R DOL(*) < @ $1 .UUCP > DOL(*) DOL(1) < @ $2 > DOL(2)')
|
||||
define(`CONCAT', `$1$2$3$4$5$6$7')
|
||||
|
@ -109,11 +114,16 @@ define(`MASQUERADE_DOMAIN', `PUSHDIVERT(5)CM$1
|
|||
POPDIVERT`'dnl')
|
||||
define(`MASQUERADE_DOMAIN_FILE', `PUSHDIVERT(5)FM$1
|
||||
POPDIVERT`'dnl')
|
||||
define(`GENERICS_DOMAIN', `PUSHDIVERT(5)CG$1
|
||||
POPDIVERT`'dnl')
|
||||
define(`GENERICS_DOMAIN_FILE', `PUSHDIVERT(5)FG$1
|
||||
POPDIVERT`'dnl')
|
||||
define(`_OPTINS', `ifdef(`$1', `$2$1$3')')
|
||||
|
||||
m4wrap(`include(_CF_DIR_`m4/proto.m4')')
|
||||
|
||||
# set up default values for options
|
||||
define(`ALIAS_FILE', `/etc/aliases')
|
||||
define(`confMAILER_NAME', ``MAILER-DAEMON'')
|
||||
define(`confFROM_LINE', `From $g $d')
|
||||
define(`confOPERATORS', `.:%@!^/[]+')
|
||||
|
@ -144,4 +154,4 @@ define(`confMIME_FORMAT_ERRORS', `True')
|
|||
define(`confFORWARD_PATH', `$z/.forward.$w:$z/.forward')
|
||||
|
||||
divert(0)dnl
|
||||
VERSIONID(`@(#)cfhead.m4 8.3 (Berkeley) 9/15/95')
|
||||
VERSIONID(`@(#)cfhead.m4 8.6 (Berkeley) 6/19/96')
|
||||
|
|
|
@ -34,7 +34,7 @@ divert(-1)
|
|||
#
|
||||
divert(0)
|
||||
|
||||
VERSIONID(`@(#)nullrelay.m4 8.10 (Berkeley) 9/29/95')
|
||||
VERSIONID(`@(#)nullrelay.m4 8.12 (Berkeley) 10/12/96')
|
||||
|
||||
#
|
||||
# This configuration applies only to relay-only hosts. They send
|
||||
|
@ -74,25 +74,30 @@ R$* ; $: $1 strip trailing semi
|
|||
R$@ $@ :; <@>
|
||||
|
||||
# basic textual canonicalization -- note RFC733 heuristic here
|
||||
R$*<$*>$*<$*>$* $2$3<$4>$5 strip multiple <> <>
|
||||
R$*<$*<$+>$*>$* <$3>$5 2-level <> nesting
|
||||
R$*<>$* $@ <@> MAIL FROM:<> case
|
||||
R$*<$+>$* $2 basic RFC821/822 parsing
|
||||
R$* $: < $1 > housekeeping <>
|
||||
R$+ < $* > < $2 > strip excess on left
|
||||
R< $* > $+ < $1 > strip excess on right
|
||||
R<> $@ < @ > MAIL FROM:<> case
|
||||
R< $+ > $: $1 remove housekeeping <>
|
||||
|
||||
ifdef(`_NO_CANONIFY_', `dnl',
|
||||
`# eliminate local host if present
|
||||
R@ $=w $=: $+ $@ @ $M $2 $3 @thishost ...
|
||||
R@ $+ $@ @ $1 @somewhere ...
|
||||
|
||||
R$=E @ $=w $@ $1 @ $2 leave exposed
|
||||
R$+ @ $=w $@ $1 @ $M ...@thishost
|
||||
R$+ @ $+ $@ $1 @ $2 ...@somewhere
|
||||
|
||||
R$=w ! $=E $@ $2 @ $1 leave exposed
|
||||
R$=w ! $+ $@ $2 @ $M thishost!...
|
||||
R$+ ! $+ $@ $1 ! $2 @ $M somewhere ! ...
|
||||
|
||||
R$=E % $=w $@ $1 @ $2 leave exposed
|
||||
R$+ % $=w $@ $1 @ $M ...%thishost
|
||||
R$+ % $+ $@ $1 @ $2 ...%somewhere
|
||||
|
||||
R$=E $@ $1 @ $j leave exposed
|
||||
R$+ $@ $1 @ $M unadorned user')
|
||||
|
||||
|
||||
|
|
|
@ -34,12 +34,12 @@ divert(-1)
|
|||
#
|
||||
divert(0)
|
||||
|
||||
VERSIONID(`@(#)proto.m4 8.100 (Berkeley) 12/3/95')
|
||||
VERSIONID(`@(#)proto.m4 8.134 (Berkeley) 10/13/96')
|
||||
|
||||
MAILER(local)dnl
|
||||
|
||||
# level 6 config file format
|
||||
V6/Berkeley
|
||||
# level 7 config file format
|
||||
V7/Berkeley
|
||||
divert(-1)
|
||||
|
||||
# do some sanity checking
|
||||
|
@ -47,7 +47,7 @@ ifdef(`__OSTYPE__',,
|
|||
`errprint(`*** ERROR: No system type defined (use OSTYPE macro)')')
|
||||
|
||||
# pick our default mailers
|
||||
ifdef(`confSMTP_MAILER',, `define(`confSMTP_MAILER', `smtp')')
|
||||
ifdef(`confSMTP_MAILER',, `define(`confSMTP_MAILER', `esmtp')')
|
||||
ifdef(`confLOCAL_MAILER',, `define(`confLOCAL_MAILER', `local')')
|
||||
ifdef(`confRELAY_MAILER',,
|
||||
`define(`confRELAY_MAILER',
|
||||
|
@ -94,7 +94,7 @@ Fw`'confCW_FILE',
|
|||
`dnl')
|
||||
|
||||
# my official domain name
|
||||
# ... define this only if sendmail cannot automatically determine your domain
|
||||
# ... `define' this only if sendmail cannot automatically determine your domain
|
||||
ifdef(`confDOMAIN_NAME', `Dj`'confDOMAIN_NAME', `#Dj$w.Foo.COM')
|
||||
|
||||
ifdef(`_NULL_CLIENT_ONLY_', `divert(-1)')dnl
|
||||
|
@ -142,6 +142,9 @@ CO @ % ifdef(`_NO_UUCP_', `', `!')
|
|||
# a class with just dot (for identifying canonical names)
|
||||
C..
|
||||
|
||||
# a class with just a left bracket (for identifying domain literals)
|
||||
C[[
|
||||
|
||||
# Mailer table (overriding domains)
|
||||
ifdef(`MAILER_TABLE',
|
||||
`Kmailertable MAILER_TABLE',
|
||||
|
@ -152,6 +155,16 @@ ifdef(`DOMAIN_TABLE',
|
|||
`Kdomaintable DOMAIN_TABLE',
|
||||
`#Kdomaintable dbm /etc/domaintable')
|
||||
|
||||
# Generics table (mapping outgoing addresses)
|
||||
ifdef(`GENERICS_TABLE',
|
||||
`Kgenerics GENERICS_TABLE',
|
||||
`#Kgenerics dbm /etc/genericstable')
|
||||
|
||||
# Virtual user table (maps incoming users)
|
||||
ifdef(`VIRTUSER_TABLE',
|
||||
`Kvirtuser VIRTUSER_TABLE',
|
||||
`#Kvirtuser dbm /etc/virtusertable')
|
||||
|
||||
# who I send unqualified names to (null means deliver locally)
|
||||
DR`'ifdef(`LOCAL_RELAY', LOCAL_RELAY)
|
||||
|
||||
|
@ -193,7 +206,7 @@ ifdef(`_NULL_CLIENT_ONLY_', `dnl', `
|
|||
_OPTION(AliasWait, `confALIAS_WAIT', 5m)
|
||||
|
||||
# location of alias file
|
||||
O AliasFile=ifdef(`ALIAS_FILE', `ALIAS_FILE', /etc/aliases)
|
||||
_OPTION(AliasFile, `ALIAS_FILE', /etc/aliases)
|
||||
')
|
||||
# minimum number of free blocks on filesystem
|
||||
_OPTION(MinFreeBlocks, `confMIN_FREE_BLOCKS', 100)
|
||||
|
@ -255,6 +268,12 @@ _OPTION(ConnectionCacheSize, `confMCI_CACHE_SIZE', 2)
|
|||
# open connection cache timeout
|
||||
_OPTION(ConnectionCacheTimeout, `confMCI_CACHE_TIMEOUT', 5m)
|
||||
|
||||
# persistent host status directory
|
||||
_OPTION(HostStatusDirectory, `confHOST_STATUS_DIRECTORY', .hoststat)
|
||||
|
||||
# single thread deliveries (requires HostStatusDirectory)?
|
||||
_OPTION(SingleThreadDelivery, `confSINGLE_THREAD_DELIVERY')
|
||||
|
||||
# use Errors-To: header?
|
||||
_OPTION(UseErrorsTo, `confUSE_ERRORS_TO')
|
||||
|
||||
|
@ -287,6 +306,8 @@ O QueueDirectory=ifdef(`QUEUE_DIR', QUEUE_DIR, /var/spool/mqueue)
|
|||
|
||||
# timeouts (many of these)
|
||||
_OPTION(Timeout.initial, `confTO_INITIAL', 5m)
|
||||
_OPTION(Timeout.connect, `confTO_CONNECT', 5m)
|
||||
_OPTION(Timeout.iconnect, `confTO_ICONNECT', 5m)
|
||||
_OPTION(Timeout.helo, `confTO_HELO', 5m)
|
||||
_OPTION(Timeout.mail, `confTO_MAIL', 10m)
|
||||
_OPTION(Timeout.rcpt, `confTO_RCPT', 1h)
|
||||
|
@ -307,6 +328,7 @@ _OPTION(Timeout.queuewarn, `confTO_QUEUEWARN', 4h)
|
|||
_OPTION(Timeout.queuewarn.normal, `confTO_QUEUEWARN_NORMAL', 4h)
|
||||
_OPTION(Timeout.queuewarn.urgent, `confTO_QUEUEWARN_URGENT', 1h)
|
||||
_OPTION(Timeout.queuewarn.non-urgent, `confTO_QUEUEWARN_NONURGENT', 12h)
|
||||
_OPTION(Timeout.hoststatus, `confTO_HOSTSTATUS', 30m)
|
||||
|
||||
# should we not prune routes in route-addr syntax addresses?
|
||||
_OPTION(DontPruneRoutes, `confDONT_PRUNE_ROUTES')
|
||||
|
@ -343,6 +365,12 @@ _OPTION(QueueLA, `confQUEUE_LA', 8)
|
|||
# load average at which we refuse connections
|
||||
_OPTION(RefuseLA, `confREFUSE_LA', 12)
|
||||
|
||||
# maximum number of children we allow at one time
|
||||
_OPTION(MaxDaemonChildren, `confMAX_DAEMON_CHILDREN', 12)
|
||||
|
||||
# maximum number of new connections per second
|
||||
_OPTION(ConnectionRateThrottle, `confCONNECTION_RATE_THROTTLE', 3)
|
||||
|
||||
# work recipient factor
|
||||
_OPTION(RecipientFactor, `confWORK_RECIPIENT_FACTOR', 30000)
|
||||
|
||||
|
@ -400,6 +428,15 @@ _OPTION(OperatorChars, `confOPERATORS')
|
|||
# shall I avoid calling initgroups(3) because of high NIS costs?
|
||||
_OPTION(DontInitGroups, `confDONT_INIT_GROUPS')
|
||||
|
||||
# are group-writable :include: and .forward files (un)trustworthy?
|
||||
_OPTION(UnsafeGroupWrites, `confUNSAFE_GROUP_WRITES')
|
||||
|
||||
# where do errors that occur when sending errors get sent?
|
||||
_OPTION(DoubleBounceAddress, `confDOUBLE_BOUNCE_ADDRESS')
|
||||
|
||||
# what user id do we assume for the majority of the processing?
|
||||
_OPTION(RunAsUser, `confRUN_AS_USER', sendmail)
|
||||
|
||||
###########################
|
||||
# Message precedences #
|
||||
###########################
|
||||
|
@ -418,7 +455,7 @@ Pjunk=-100
|
|||
ifdef(`_USE_CT_FILE_', `', `#')Ft`'ifdef(`confCT_FILE', confCT_FILE, `/etc/sendmail.ct')
|
||||
Troot
|
||||
Tdaemon
|
||||
Tuucp
|
||||
ifdef(`_NO_UUCP_', `dnl', `Tuucp')
|
||||
ifdef(`confTRUSTED_USERS', `T`'confTRUSTED_USERS', `dnl')
|
||||
|
||||
#########################
|
||||
|
@ -426,14 +463,13 @@ ifdef(`confTRUSTED_USERS', `T`'confTRUSTED_USERS', `dnl')
|
|||
#########################
|
||||
|
||||
ifdef(`confFROM_HEADER',, `define(`confFROM_HEADER', `$?x$x <$g>$|$g$.')')dnl
|
||||
H?P?Return-Path: $g
|
||||
H?P?Return-Path: <$g>
|
||||
HReceived: confRECEIVED_HEADER
|
||||
H?D?Resent-Date: $a
|
||||
H?D?Date: $a
|
||||
H?F?Resent-From: confFROM_HEADER
|
||||
H?F?From: confFROM_HEADER
|
||||
H?x?Full-Name: $x
|
||||
HSubject:
|
||||
# HPosted-Date: $a
|
||||
# H?l?Received-Date: $b
|
||||
H?M?Resent-Message-Id: <$t.$i@$j>
|
||||
|
@ -450,11 +486,9 @@ ifdef(`_NULL_CLIENT_ONLY_',
|
|||
######################################################################
|
||||
######################################################################
|
||||
|
||||
undivert(9)dnl
|
||||
|
||||
###########################################
|
||||
### Rulset 3 -- Name Canonicalization ###
|
||||
###########################################
|
||||
############################################
|
||||
### Ruleset 3 -- Name Canonicalization ###
|
||||
############################################
|
||||
S3
|
||||
|
||||
# handle null input (translate to <@> special case)
|
||||
|
@ -463,8 +497,11 @@ R$@ $@ <@>
|
|||
# strip group: syntax (not inside angle brackets!) and trailing semicolon
|
||||
R$* $: $1 <@> mark addresses
|
||||
R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
|
||||
R@ $* <@> $: @ $1 unmark @host:...
|
||||
R$* :: $* <@> $: $1 :: $2 unmark node::addr
|
||||
R:`include': $* <@> $: :`include': $1 unmark :`include':...
|
||||
R$* [ $* : $* ] <@> $: $1 [ $2 : $3 ] unmark IPv6 addrs
|
||||
R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
|
||||
R$* : $* <@> $: $2 strip colon if marked
|
||||
R$* <@> $: $1 unmark
|
||||
R$* ; $: $1 strip trailing semi
|
||||
|
@ -559,18 +596,17 @@ ifdef(`_CLASS_Y_',
|
|||
R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
|
||||
R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3')
|
||||
')
|
||||
ifdef(`_NO_CANONIFY_', `dnl',
|
||||
`# pass to name server to make hostname canonical
|
||||
R$* < @ $* $~P > $* $: $1 < @ $[ $2 $3 $] > $4')
|
||||
# pass to name server to make hostname canonical
|
||||
ifdef(`_NO_CANONIFY_', `#')dnl
|
||||
R$* < @ $* $~P > $* $: $1 < @ $[ $2 $3 $] > $4
|
||||
|
||||
# local host aliases and pseudo-domains are always canonical
|
||||
R$* < @ $=w > $* $: $1 < @ $2 . > $3
|
||||
R$* < @ $j > $* $: $1 < @ $j . > $2
|
||||
R$* < @ $* $=M > $* $: $1 < @ $2 $3 . > $4
|
||||
R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
|
||||
R$* < @ $* . . > $* $1 < @ $2 . > $3
|
||||
|
||||
# if this is the local hostname, make sure we treat is as canonical
|
||||
R$* < @ $j > $* $: $1 < @ $j . > $2
|
||||
|
||||
|
||||
##################################################
|
||||
### Ruleset 4 -- Final Output Post-rewriting ###
|
||||
|
@ -622,7 +658,10 @@ S0
|
|||
R<@> $#_LOCAL_ $: <@> special case error msgs
|
||||
R$* : $* ; <@> $#error $@ 5.1.3 $: "list:; syntax illegal for recipient addresses"
|
||||
R<@ $+> $#error $@ 5.1.1 $: "user address required"
|
||||
R$* <$* : $* > $* $#error $@ 5.1.1 $: "colon illegal in host name part"
|
||||
R$* $: <> $1
|
||||
R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
|
||||
R<> $* <$* : $* > $* $#error $@ 5.1.1 $: "colon illegal in host name part"
|
||||
R<> $* $1
|
||||
R$* < @ . > $* $#error $@ 5.1.2 $: "invalid host name"
|
||||
|
||||
ifdef(`_MAILER_smtp_',
|
||||
|
@ -635,15 +674,24 @@ R$* < @ [ $+ ] > $* $#_SMTP_ $@ [$2] $: $1 < @ [$2] > $3 still numeric: send',
|
|||
R$* < @ > $* $@ $>97 $1 user@ => user
|
||||
R< @ $=w . > : $* $@ $>97 $2 @here:... -> ...
|
||||
R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
|
||||
R< @ $+ > $#error $@ 5.1.1 $: "user address required"
|
||||
R$* $=O $* < @ $=w . > $@ $>97 $1 $2 $3 ...@here -> ...
|
||||
|
||||
# handle local hacks
|
||||
R$* $: $>98 $1
|
||||
|
||||
# handle virtual users
|
||||
define(`X', ifdef(`VIRTUSER_TABLE', `', `#'))dnl
|
||||
X`'R$+ < @ $=w . > $: < $(virtuser $1 @ $2 $@ $1 $: @ $) > $1 < @ $2 . >
|
||||
X`'R< @ > $+ < @ $+ . > $: < $(virtuser @ $2 $@ $1 $: @ $) > $1 < @ $2 . >
|
||||
X`'R< @ > $+ $: $1
|
||||
X`'R< error : $- $+ > $* $#error $@ $1 $: $2
|
||||
X`'R< $+ > $+ < @ $+ > $: $>97 $1
|
||||
undefine(`X')dnl
|
||||
|
||||
# short circuit local delivery so forwarded email works
|
||||
ifdef(`_MAILER_usenet_',
|
||||
`R$+ . USENET < @ $=w . > $#usenet $: $1 handle usenet specially',
|
||||
`dnl')
|
||||
ifdef(`_MAILER_usenet_', `', `#')dnl
|
||||
R$+ . USENET < @ $=w . > $#usenet $: $1 handle usenet specially
|
||||
ifdef(`_STICKY_LOCAL_DOMAIN_',
|
||||
`R$+ < @ $=w . > $: < $H > $1 < @ $2 . > first try hub
|
||||
R< $+ > $+ < $+ > $>95 < $1 > $2 < $3 > yep ....
|
||||
|
@ -657,8 +705,7 @@ define(`X', ifdef(`MAILER_TABLE', `', `#'))dnl
|
|||
X`'R$* <@ $+ > $* $: < $2 > $1 < @ $2 > $3 extract host name
|
||||
X`'R< $+ . > $* $: < $1 > $2 strip trailing dot
|
||||
X`'R< $+ > $* $: < $(mailertable $1 $) > $2 lookup
|
||||
X`'R< error : $- $+ > $* $#error $@ $1 $: $2 check -- error?
|
||||
X`'R< $- : $+ > $* $# $1 $@ $2 $: $3 check -- resolved?
|
||||
X`'R< $~[ : $+ > $* $>95 < $1 : $2 > $3 check -- resolved?
|
||||
X`'R< $+ > $* $: $>90 <$1> $2 try domain
|
||||
undefine(`X')dnl
|
||||
undivert(4)dnl
|
||||
|
@ -759,40 +806,63 @@ R< $+ > $+ $@ $>95 < $1 > $2 < @ $1 >
|
|||
###################################################################
|
||||
|
||||
define(`X', ifdef(`MAILER_TABLE', `', `#'))dnl
|
||||
X`'S90
|
||||
S90
|
||||
X`'R$* <$- . $+ > $* $: $1$2 < $(mailertable .$3 $@ $1$2 $@ $2 $) > $4
|
||||
X`'R$* <$- : $+ > $* $# $2 $@ $3 $: $4 check -- resolved?
|
||||
X`'R$* < . $+ > $* $@ $>90 $1 . <$2> $3 no -- strip & try again
|
||||
X`'R$* <$~[ : $+ > $* $>95 < $2 : $3 > $4 check -- resolved?
|
||||
X`'R$* < . $+ > $* $@ $>90 $1 . <$2> $3 no -- strip & try again
|
||||
X`'R$* < $* > $* $: < $(mailertable . $@ $1$2 $) > $3 try "."
|
||||
X`'R<$- : $+ > $* $# $1 $@ $2 $: $3 "." found?
|
||||
X`'R< $* > $* $@ $2 no mailertable match
|
||||
X`'R< $~[ : $+ > $* $>95 < $1 : $2 > $3 "." found?
|
||||
X`'R< $* > $* $@ $2 no mailertable match
|
||||
undefine(`X')dnl
|
||||
|
||||
###################################################################
|
||||
### Ruleset 95 -- canonify mailer:host syntax to triple ###
|
||||
### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ###
|
||||
###################################################################
|
||||
|
||||
S95
|
||||
R< > $* $@ $1 strip off null relay
|
||||
R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
|
||||
R< $=w > $* $@ $2 delete local host
|
||||
R< $+ > $* $#_RELAY_ $@ $1 $: $2 use unqualified mailer
|
||||
R< > $* $@ $1 strip off null relay
|
||||
R< error : $- $+ > $* $#error $@ $1 $: $2 special case errors
|
||||
R< local : > $* < @ $* > $#local $@ $1@$2 $: $1 no host: use old user
|
||||
R< local : $+ > $* <@ $* . > $* $#local $@ $2@$3 $: $1 special case local
|
||||
R< $- : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
|
||||
R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
|
||||
R< $=w > $* $@ $2 delete local host
|
||||
R< $+ > $* $#_RELAY_ $@ $1 $: $2 use unqualified mailer
|
||||
|
||||
###################################################################
|
||||
### Ruleset 93 -- convert header names to masqueraded form ###
|
||||
###################################################################
|
||||
|
||||
S93
|
||||
|
||||
# handle generics database
|
||||
define(`X', ifdef(`GENERICS_TABLE', `', `#'))dnl
|
||||
X`'R$+ < @ $=G . > $: < $1@$2 > $1 < @ $2 . > @ mark
|
||||
X`'R$+ < @ *LOCAL* > $: < $1@$j > $1 < @ *LOCAL* > @ mark
|
||||
X`'R< $+ > $+ < $* > @ $: < $(generics $1 $: $) > $2 < $3 >
|
||||
X`'R< > $+ < @ $+ > $: < $(generics $1 $: $) > $1 < @ $2 >
|
||||
X`'R< $* @ $* > $* < $* > $@ $>3 $1 @ $2 found qualified
|
||||
X`'R< $+ > $* < $* > $: $>3 $1 @ *LOCAL* found unqualified
|
||||
X`'R< > $* $: $1 not found
|
||||
undefine(`X')dnl
|
||||
|
||||
# special case the users that should be exposed
|
||||
R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave exposed
|
||||
R$=E < @ $=M . > $@ $1 < @ $2 . >
|
||||
ifdef(`_MASQUERADE_ENTIRE_DOMAIN_',
|
||||
`R$=E < @ $* $=M . > $@ $1 < @ $2 $3 . >',
|
||||
`R$=E < @ $=M . > $@ $1 < @ $2 . >')
|
||||
ifdef(`_LIMITED_MASQUERADE_', `#')dnl
|
||||
R$=E < @ $=w . > $@ $1 < @ $2 . >
|
||||
R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms
|
||||
|
||||
# handle domain-specific masquerading
|
||||
ifdef(`_MASQUERADE_ENTIRE_DOMAIN_',
|
||||
`R$* < @ $* $=M . > $* $: $1 < @ $2 $3 . @ $M > $4 convert masqueraded doms',
|
||||
`R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms')
|
||||
ifdef(`_LIMITED_MASQUERADE_', `#')dnl
|
||||
R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3
|
||||
R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2
|
||||
R$* < @ $+ @ > $* $@ $1 < @ $2 > $3 $M is null
|
||||
R$* < @ $+ @ $+ > $* $@ $1 < @ $3 . > $4 $M is not null
|
||||
R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null
|
||||
R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not null
|
||||
|
||||
###################################################################
|
||||
### Ruleset 94 -- convert envelope names to masqueraded form ###
|
||||
|
@ -810,6 +880,7 @@ R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
|
|||
|
||||
S98
|
||||
undivert(3)dnl
|
||||
undivert(9)dnl
|
||||
#
|
||||
######################################################################
|
||||
######################################################################
|
||||
|
|
|
@ -32,8 +32,8 @@ divert(-1)
|
|||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
VERSIONID(`@(#)version.m4 8.7.3.1 (Berkeley) 12/3/95')
|
||||
VERSIONID(`@(#)version.m4 8.8.2.1 (Berkeley) 10/18/96')
|
||||
#
|
||||
divert(0)
|
||||
# Configuration version number
|
||||
DZ8.7.3`'ifdef(`confCF_VERSION', `/confCF_VERSION')
|
||||
DZ8.8.2`'ifdef(`confCF_VERSION', `/confCF_VERSION')
|
||||
|
|
|
@ -26,6 +26,7 @@ PUSHDIVERT(-1)
|
|||
ifdef(`CYRUS_MAILER_FLAGS',, `define(`CYRUS_MAILER_FLAGS', `A5@')')
|
||||
ifdef(`CYRUS_MAILER_PATH',, `define(`CYRUS_MAILER_PATH', /usr/cyrus/bin/deliver)')
|
||||
ifdef(`CYRUS_MAILER_ARGS',, `define(`CYRUS_MAILER_ARGS', `deliver -e -m $h -- $u')')
|
||||
ifdef(`CYRUS_MAILER_USER',, `define(`CYRUS_MAILER_USER', `cyrus:mail')')
|
||||
ifdef(`CYRUS_BB_MAILER_FLAGS',, `define(`CYRUS_BB_MAILER_FLAGS', `')')
|
||||
ifdef(`CYRUS_BB_MAILER_ARGS',, `define(`CYRUS_BB_MAILER_ARGS', `deliver -e -m $u')')
|
||||
|
||||
|
@ -35,10 +36,12 @@ POPDIVERT
|
|||
### Cyrus Mailer specification ###
|
||||
##################################################
|
||||
|
||||
VERSIONID(`@(#)cyrus.m4 8.2 (Carnegie Mellon) 9/12/95')
|
||||
VERSIONID(`@(#)cyrus.m4 8.4 (Carnegie Mellon) 9/2/96')
|
||||
|
||||
Mcyrus, P=CYRUS_MAILER_PATH, F=CONCAT(`lsDFMnP', CYRUS_MAILER_FLAGS), S=10, R=20/40, T=X-Unix,
|
||||
ifdef(`CYRUS_MAILER_MAX', `M=CYRUS_MAILER_MAX, ')A=CYRUS_MAILER_ARGS
|
||||
Mcyrus, P=CYRUS_MAILER_PATH, F=CONCAT(`lsDFMnPq', CYRUS_MAILER_FLAGS), S=10, R=20/40, T=X-Unix,
|
||||
ifdef(`CYRUS_MAILER_MAX', `M=CYRUS_MAILER_MAX, ')U=CYRUS_MAILER_USER,
|
||||
A=CYRUS_MAILER_ARGS
|
||||
|
||||
Mcyrusbb, P=CYRUS_MAILER_PATH, F=CONCAT(`lsDFMnP', CYRUS_MAILER_FLAGS), S=10, R=20/40, T=X-Unix,
|
||||
ifdef(`CYRUS_MAILER_MAX', `M=CYRUS_MAILER_MAX, ')A=CYRUS_BB_MAILER_ARGS
|
||||
Mcyrusbb, P=CYRUS_MAILER_PATH, F=CONCAT(`lsDFMnP', CYRUS_BB_MAILER_FLAGS), S=10, R=20/40, T=X-Unix,
|
||||
ifdef(`CYRUS_MAILER_MAX', `M=CYRUS_MAILER_MAX, ')U=CYRUS_MAILER_USER,
|
||||
A=CYRUS_BB_MAILER_ARGS
|
||||
|
|
|
@ -35,6 +35,8 @@ PUSHDIVERT(-1)
|
|||
# SUCH DAMAGE.
|
||||
#
|
||||
|
||||
ifdef(`FAX_MAILER_ARGS',,
|
||||
`define(`FAX_MAILER_ARGS', mailfax $u $h $f)')
|
||||
ifdef(`FAX_MAILER_PATH',,
|
||||
`define(`FAX_MAILER_PATH', /usr/local/lib/fax/mailfax)')
|
||||
ifdef(`FAX_MAILER_MAX',,
|
||||
|
@ -44,10 +46,10 @@ POPDIVERT
|
|||
### FAX Mailer specification ###
|
||||
####################################
|
||||
|
||||
VERSIONID(`@(#)fax.m4 8.4 (Berkeley) 10/10/95')
|
||||
VERSIONID(`@(#)fax.m4 8.5 (Berkeley) 5/10/96')
|
||||
|
||||
Mfax, P=FAX_MAILER_PATH, F=DFMhu, S=14, R=24, M=FAX_MAILER_MAX, T=X-Phone/X-FAX/X-Unix,
|
||||
A=mailfax $u $h $f
|
||||
A=FAX_MAILER_ARGS
|
||||
|
||||
LOCAL_CONFIG
|
||||
CPFAX
|
||||
|
|
|
@ -32,10 +32,10 @@ PUSHDIVERT(-1)
|
|||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `rmn')')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `rmn9')')
|
||||
ifdef(`LOCAL_MAILER_PATH',, `define(`LOCAL_MAILER_PATH', /bin/mail)')
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `mail -d $u')')
|
||||
ifdef(`LOCAL_SHELL_FLAGS',, `define(`LOCAL_SHELL_FLAGS', `eu')')
|
||||
ifdef(`LOCAL_SHELL_FLAGS',, `define(`LOCAL_SHELL_FLAGS', `eu9')')
|
||||
ifdef(`LOCAL_SHELL_PATH',, `define(`LOCAL_SHELL_PATH', /bin/sh)')
|
||||
ifdef(`LOCAL_SHELL_ARGS',, `define(`LOCAL_SHELL_ARGS', `sh -c $u')')
|
||||
ifdef(`LOCAL_SHELL_DIR',, `define(`LOCAL_SHELL_DIR', `$z:/')')
|
||||
|
@ -45,12 +45,12 @@ POPDIVERT
|
|||
### Local and Program Mailer specification ###
|
||||
##################################################
|
||||
|
||||
VERSIONID(`@(#)local.m4 8.21 (Berkeley) 11/6/95')
|
||||
VERSIONID(`@(#)local.m4 8.23 (Berkeley) 5/31/96')
|
||||
|
||||
Mlocal, P=LOCAL_MAILER_PATH, F=CONCAT(`lsDFMAw5:/|@', LOCAL_MAILER_FLAGS), S=10/30, R=20/40,
|
||||
Mlocal, P=LOCAL_MAILER_PATH, F=CONCAT(`lsDFMAw5:/|@q', LOCAL_MAILER_FLAGS), S=10/30, R=20/40,
|
||||
_OPTINS(`LOCAL_MAILER_MAX', `M=', `, ')_OPTINS(`LOCAL_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/X-Unix,
|
||||
A=LOCAL_MAILER_ARGS
|
||||
Mprog, P=LOCAL_SHELL_PATH, F=CONCAT(`lsDFMo', LOCAL_SHELL_FLAGS), S=10/30, R=20/40, D=LOCAL_SHELL_DIR,
|
||||
Mprog, P=LOCAL_SHELL_PATH, F=CONCAT(`lsDFMoq', LOCAL_SHELL_FLAGS), S=10/30, R=20/40, D=LOCAL_SHELL_DIR,
|
||||
_OPTINS(`LOCAL_MAILER_MAX', `M=', `, ')T=X-Unix,
|
||||
A=LOCAL_SHELL_ARGS
|
||||
|
||||
|
|
|
@ -43,9 +43,9 @@ POPDIVERT
|
|||
### POP Mailer specification ###
|
||||
####################################
|
||||
|
||||
VERSIONID(`@(#)pop.m4 8.5 (Berkeley) 4/23/95')
|
||||
VERSIONID(`@(#)pop.m4 8.6 (Berkeley) 2/12/96')
|
||||
|
||||
Mpop, P=POP_MAILER_PATH, F=CONCAT(`lsDFM', POP_MAILER_FLAGS), S=10, R=20/40, T=DNS/RFC822/X-Unix,
|
||||
Mpop, P=POP_MAILER_PATH, F=CONCAT(`lsDFMq', POP_MAILER_FLAGS), S=10, R=20/40, T=DNS/RFC822/X-Unix,
|
||||
A=POP_MAILER_ARGS
|
||||
|
||||
LOCAL_CONFIG
|
||||
|
|
|
@ -33,8 +33,10 @@ PUSHDIVERT(-1)
|
|||
# SUCH DAMAGE.
|
||||
#
|
||||
|
||||
ifdef(`PROCMAIL_PATH',,
|
||||
`define(`PROCMAIL_PATH', /usr/local/bin/procmail)')
|
||||
ifdef(`PROCMAIL_MAILER_PATH',,
|
||||
`ifdef(`PROCMAIL_PATH',
|
||||
`define(`PROCMAIL_MAILER_PATH', PROCMAIL_PATH)',
|
||||
`define(`PROCMAIL_MAILER_PATH', /usr/local/bin/procmail)')')
|
||||
ifdef(`PROCMAIL_MAILER_FLAGS',,
|
||||
`define(`PROCMAIL_MAILER_FLAGS', `Shu')')
|
||||
ifdef(`PROCMAIL_MAILER_ARGS',,
|
||||
|
@ -46,7 +48,7 @@ POPDIVERT
|
|||
### PROCMAIL Mailer specification ###
|
||||
##################*****##################
|
||||
|
||||
VERSIONID(`@(#)procmail.m4 8.4 (Berkeley) 4/23/95')
|
||||
VERSIONID(`@(#)procmail.m4 8.5 (Berkeley) 12/28/95')
|
||||
|
||||
Mprocmail, P=PROCMAIL_PATH, F=CONCAT(`DFMm', PROCMAIL_MAILER_FLAGS), S=11/31, R=21/31, T=DNS/RFC822/X-Unix,
|
||||
Mprocmail, P=PROCMAIL_MAILER_PATH, F=CONCAT(`DFMm', PROCMAIL_MAILER_FLAGS), S=11/31, R=21/31, T=DNS/RFC822/X-Unix,
|
||||
ifdef(`PROCMAIL_MAILER_MAX', `M=PROCMAIL_MAILER_MAX, ')A=PROCMAIL_MAILER_ARGS
|
||||
|
|
|
@ -44,7 +44,7 @@ POPDIVERT
|
|||
### SMTP Mailer specification ###
|
||||
#####################################
|
||||
|
||||
VERSIONID(`@(#)smtp.m4 8.32 (Berkeley) 11/20/95')
|
||||
VERSIONID(`@(#)smtp.m4 8.33 (Berkeley) 7/9/96')
|
||||
|
||||
Msmtp, P=[IPC], F=CONCAT(mDFMuX, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `21/31', `21'), E=\r\n, L=990,
|
||||
_OPTINS(`SMTP_MAILER_MAX', `M=', `, ')_OPTINS(`SMTP_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/SMTP,
|
||||
|
@ -114,7 +114,9 @@ R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
|
|||
R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
|
||||
R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
|
||||
R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
|
||||
R< $+ ! > $+ $: $1 ! $2 < @ *LOCAL* >')
|
||||
R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
|
||||
R$+ < @ $+ : $+ > $@ $1 < @ $3 > strip mailer: part
|
||||
R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY')
|
||||
|
||||
|
||||
#
|
||||
|
|
41
usr.sbin/sendmail/cf/ostype/aix2.m4
Normal file
41
usr.sbin/sendmail/cf/ostype/aix2.m4
Normal file
|
@ -0,0 +1,41 @@
|
|||
divert(-1)
|
||||
#
|
||||
# Copyright (c) 1995 Eric P. Allman
|
||||
# Copyright (c) 1988, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)aix2.m4 8.2 (Berkeley) 9/19/96')
|
||||
define(`LOCAL_MAILER_PATH', /bin/bellmail)dnl
|
||||
define(`LOCAL_MAILER_ARGS', mail $u)dnl
|
||||
define(`LOCAL_MAILER_FLAGS', `mn9')dnl
|
||||
define(`confTIME_ZONE', `USE_TZ')dnl
|
|
@ -34,8 +34,8 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)aix3.m4 8.5 (Berkeley) 11/13/95')
|
||||
VERSIONID(`@(#)aix3.m4 8.6 (Berkeley) 9/19/96')
|
||||
ifdef(`LOCAL_MAILER_PATH',, `define(`LOCAL_MAILER_PATH', /bin/bellmail)')dnl
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', mail $u)')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `mn')')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `mn9')')dnl
|
||||
define(`confTIME_ZONE', `USE_TZ')dnl
|
||||
|
|
49
usr.sbin/sendmail/cf/ostype/altos.m4
Normal file
49
usr.sbin/sendmail/cf/ostype/altos.m4
Normal file
|
@ -0,0 +1,49 @@
|
|||
divert(-1)
|
||||
#
|
||||
# Copyright (c) 1996 Eric P. Allman
|
||||
# Copyright (c) 1988, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# Contributed by Tim Rice <tim@trr.metro.NET>.
|
||||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)altos.m4 8.3 (Berkeley) 9/25/96')
|
||||
|
||||
define(`ALIAS_FILE', /usr/lib/mail/aliases)dnl
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /usr/spool/mqueue)')dnl
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /usr/lib/sendmail.st)')dnl
|
||||
ifdef(`UUCP_MAILER_PATH',, `define(`UUCP_MAILER_PATH', /usr/bin/uux)')dnl
|
||||
ifdef(`LOCAL_MAILER_PATH',, `define(`LOCAL_MAILER_PATH', /usr/bin/lmail)')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', mPuhCE9)')dnl
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `lmail $u')')dnl
|
||||
ifdef(`LOCAL_SHELL_FLAGS',, `define(`LOCAL_SHELL_FLAGS', Peu)')dnl
|
||||
ifdef(`UUCP_MAILER_ARGS',, `define(`UUCP_MAILER_ARGS', `uux - -r -a$g $h!rmail ($u)')')dnl
|
|
@ -34,11 +34,11 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)amdahl-uts.m4 8.2 (Berkeley) 11/13/95')
|
||||
VERSIONID(`@(#)amdahl-uts.m4 8.4 (Berkeley) 9/25/96')
|
||||
divert(-1)
|
||||
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /etc/mail/aliases)')
|
||||
define(`ALIAS_FILE', /etc/mail/aliases)
|
||||
ifdef(`HELP_FILE',, `define(`HELP_FILE', /etc/mail/sendmail.hf)')
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /usr/lib/sendmail.st)')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `fSn')')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `fSn9')')
|
||||
define(`confCW_FILE', /etc/mail/sendmail.cw)
|
||||
|
|
|
@ -34,10 +34,10 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)aux.m4 8.2 (Berkeley) 11/13/95')
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /usr/lib/aliases)')dnl
|
||||
VERSIONID(`@(#)aux.m4 8.4 (Berkeley) 9/25/96')
|
||||
define(`ALIAS_FILE', /usr/lib/aliases)dnl
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /usr/spool/mqueue)')dnl
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /usr/lib/sendmail.st)')dnl
|
||||
ifdef(`UUCP_MAILER_PATH',, `define(`UUCP_MAILER_PATH', /usr/bin/uux)')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', mn)')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', mn9)')dnl
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `mail -d -r $f $u')')dnl
|
||||
|
|
|
@ -34,6 +34,8 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)dgux.m4 8.2 (Berkeley) 11/13/95')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', m)')dnl
|
||||
VERSIONID(`@(#)dgux.m4 8.4 (Berkeley) 9/19/96')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', m9)')dnl
|
||||
define(`confTIME_ZONE', `USE_TZ')dnl
|
||||
LOCAL_CONFIG
|
||||
E_FORCE_MAIL_LOCAL_=yes
|
||||
|
|
|
@ -34,9 +34,9 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)domainos.m4 8.2 (Berkeley) 11/13/95')
|
||||
VERSIONID(`@(#)domainos.m4 8.3 (Berkeley) 9/25/96')
|
||||
divert(-1)
|
||||
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /usr/lib/aliases)')
|
||||
define(`ALIAS_FILE', /usr/lib/aliases)
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /usr/lib/sendmail.st)')
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /usr/spool/mqueue)')
|
||||
|
|
|
@ -34,6 +34,6 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)dynix3.2.m4 8.2 (Berkeley) 11/13/95')
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /usr/lib/aliases)')dnl
|
||||
VERSIONID(`@(#)dynix3.2.m4 8.3 (Berkeley) 9/25/96')
|
||||
define(`ALIAS_FILE', /usr/lib/aliases)dnl
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /usr/spool/mqueue)')dnl
|
||||
|
|
|
@ -34,14 +34,14 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)hpux10.m4 8.6 (Berkeley) 11/13/95')
|
||||
VERSIONID(`@(#)hpux10.m4 8.8 (Berkeley) 9/25/96')
|
||||
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /var/spool/mqueue)')dnl
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /etc/mail/aliases)')dnl
|
||||
define(`ALIAS_FILE', /etc/mail/aliases)dnl
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /etc/mail/sendmail.st)')dnl
|
||||
ifdef(`HELP_FILE',, `define(`HELP_FILE', /usr/share/lib/sendmail.hf)')dnl
|
||||
ifdef(`LOCAL_MAILER_PATH',, `define(`LOCAL_MAILER_PATH', /usr/bin/rmail)')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `m')')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `m9')')dnl
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `rmail -d $u')')dnl
|
||||
ifdef(`LOCAL_SHELL_PATH',, `define(`LOCAL_SHELL_PATH', /usr/bin/sh)')dnl
|
||||
ifdef(`UUCP_MAILER_ARGS',, `define(`UUCP_MAILER_ARGS', `uux - -r -a$g -gC $h!rmail ($u)')')dnl
|
||||
|
|
|
@ -34,13 +34,13 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)hpux9.m4 8.10 (Berkeley) 11/13/95')
|
||||
VERSIONID(`@(#)hpux9.m4 8.12 (Berkeley) 9/25/96')
|
||||
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /usr/spool/mqueue)')dnl
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /usr/lib/aliases)')dnl
|
||||
define(`ALIAS_FILE', /usr/lib/aliases)dnl
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /usr/lib/sendmail.st)')dnl
|
||||
ifdef(`LOCAL_MAILER_PATH',, `define(`LOCAL_MAILER_PATH', `/bin/rmail')')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `m')')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `m9')')dnl
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `rmail -d $u')')dnl
|
||||
ifdef(`UUCP_MAILER_ARGS',, `define(`UUCP_MAILER_ARGS', `uux - -r -a$g -gC $h!rmail ($u)')')dnl
|
||||
define(`confTIME_ZONE', `USE_TZ')dnl
|
||||
|
|
|
@ -34,8 +34,8 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)irix4.m4 8.5 (Berkeley) 11/13/95')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', Ehm)')dnl
|
||||
VERSIONID(`@(#)irix4.m4 8.7 (Berkeley) 9/25/96')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', Ehm9)')dnl
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /usr/spool/mqueue)')dnl
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /usr/lib/aliases)')dnl
|
||||
define(`ALIAS_FILE', /usr/lib/aliases)dnl
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /usr/lib/sendmail.st)')dnl
|
||||
|
|
|
@ -50,11 +50,11 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)irix5.m4 8.2 (Berkeley) 11/13/95')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', Ehmu)')dnl
|
||||
VERSIONID(`@(#)irix5.m4 8.4 (Berkeley) 9/25/96')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', Ehmu9)')dnl
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `mail -s -d $u')')dnl
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /var/spool/mqueue)')dnl
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /etc/aliases)')dnl
|
||||
define(`ALIAS_FILE', /etc/aliases)dnl
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /var/sendmail.st)')dnl
|
||||
ifdef(`HELP_FILE',, `define(`HELP_FILE', /etc/sendmail.hf)')dnl
|
||||
define(`confDEF_USER_ID', `998:998')dnl
|
||||
|
|
|
@ -35,11 +35,11 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)isc4.1.m4 8.2 (Berkeley) 11/13/95')
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /usr/lib/aliases)')dnl
|
||||
VERSIONID(`@(#)isc4.1.m4 8.4 (Berkeley) 9/25/96')
|
||||
define(`ALIAS_FILE', /usr/lib/aliases)dnl
|
||||
ifdef(`HELP_FILE',, `define(`HELP_FILE', /usr/lib/sendmail.hf)')dnl
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `lmail -s $u')')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `humS')')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `humS9')')dnl
|
||||
ifdef(`LOCAL_MAILER_PATH',, `define(`LOCAL_MAILER_PATH', /bin/lmail)')dnl
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /usr/spool/mqueue)')dnl
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /usr/lib/sendmail.st)')dnl
|
||||
|
|
50
usr.sbin/sendmail/cf/ostype/maxion.m4
Normal file
50
usr.sbin/sendmail/cf/ostype/maxion.m4
Normal file
|
@ -0,0 +1,50 @@
|
|||
#
|
||||
# Copyright (c) 1996 Eric P. Allman
|
||||
# Copyright (c) 1988, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# Concurrent Computer Corporation Maxion system support contributed
|
||||
# by Donald R. Laster Jr. <Laster@access.digex.com>.
|
||||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)maxion.m4 8.3 (Berkeley) 9/25/96')
|
||||
|
||||
define(`ALIAS_FILE', `/etc/ucbmail/aliases')dnl
|
||||
define(`HELP_FILE', `/etc/ucbmail/sendmail.hf')dnl
|
||||
define(`QUEUE_DIR', `/var/spool/mqueue')dnl
|
||||
define(`STATUS_FILE', `/var/adm/log/sendmail.st')dnl
|
||||
define(`LOCAL_MAILER_PATH', `/usr/bin/mail')dnl
|
||||
define(`LOCAL_MAILER_FLAGS',`rmn9')dnl
|
||||
define(`LOCAL_SHELL_FLAGS', `ehuP')dnl
|
||||
define(`LOCAL_MAILER_ARGS', `mail $u')dnl
|
||||
define(`UUCP_MAILER_ARGS', `uux - -r -a$g -gmedium $h!rmail ($u)')dnl
|
||||
divert(-1)
|
|
@ -34,11 +34,11 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)nextstep.m4 8.5 (Berkeley) 11/13/95')
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /etc/sendmail/aliases)')dnl
|
||||
VERSIONID(`@(#)nextstep.m4 8.7 (Berkeley) 9/25/96')
|
||||
define(`ALIAS_FILE', /etc/sendmail/aliases)dnl
|
||||
ifdef(`HELP_FILE',, `define(`HELP_FILE', /usr/lib/sendmail.hf)')dnl
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /etc/sendmail/sendmail.st)')dnl
|
||||
ifdef(`UUCP_MAILER_PATH',, `define(`UUCP_MAILER_PATH', /usr/bin/uux)')dnl
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /usr/spool/mqueue)')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `rmnP')')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `rmnP9')')dnl
|
||||
ifdef(`LOCAL_SHELL_FLAGS',, `define(`LOCAL_SHELL_FLAGS', `euP')')dnl
|
||||
|
|
|
@ -34,7 +34,7 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)osf1.m4 8.3 (Berkeley) 11/13/95')
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /usr/adm/sendmail/aliases)')dnl
|
||||
VERSIONID(`@(#)osf1.m4 8.4 (Berkeley) 9/25/96')
|
||||
define(`ALIAS_FILE', /usr/adm/sendmail/aliases)dnl
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /usr/adm/sendmail/sendmail.st)')dnl
|
||||
ifdef(`HELP_FILE',, `define(`HELP_FILE', /usr/share/lib/sendmail.hf)')dnl
|
||||
|
|
|
@ -36,10 +36,11 @@ divert(-1)
|
|||
# Support for DYNIX/ptx 2.x.
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)ptx2.m4 8.1 (Berkeley) 12/4/94')
|
||||
ifdef(`ALIAS_FILE',,`define(`ALIAS_FILE', /usr/lib/aliases)')dnl
|
||||
VERSIONID(`@(#)ptx2.m4 8.5 (Berkeley) 9/25/96')
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /usr/spool/mqueue)')dnl
|
||||
define(`ALIAS_FILE', /usr/lib/aliases)dnl
|
||||
ifdef(`HELP_FILE',,`define(`HELP_FILE', /usr/lib/sendmail.hf)')dnl
|
||||
ifdef(`STATUS_FILE',,`define(`STATUS_FILE', /usr/lib/sendmail.st)')dnl
|
||||
define(`LOCAL_MAILER_PATH', `/bin/mail')dnl
|
||||
define(`LOCAL_MAILER_FLAGS', `rmn')dnl
|
||||
define(`LOCAL_SHELL_FLAGS', `e')dnl
|
||||
define(`LOCAL_MAILER_FLAGS', `fmn9')dnl
|
||||
define(`LOCAL_SHELL_FLAGS', `eu')dnl
|
||||
|
|
|
@ -34,9 +34,9 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)riscos4.5.m4 8.3 (Berkeley) 11/13/95')
|
||||
VERSIONID(`@(#)riscos4.5.m4 8.4 (Berkeley) 9/25/96')
|
||||
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `rmail -d $u')')dnl
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', `/usr/lib/aliases')')dnl
|
||||
define(`ALIAS_FILE', `/usr/lib/aliases')dnl
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', `/usr/spool/mqueue')')dnl
|
||||
ifdef(`HELP_FILE',, `define(`HELP_FILE', `/usr/lib/sendmail.hf')')dnl
|
||||
|
|
|
@ -34,12 +34,12 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)sco3.2.m4 8.2 (Berkeley) 11/13/95')
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /usr/lib/mail/aliases)')dnl
|
||||
VERSIONID(`@(#)sco3.2.m4 8.4 (Berkeley) 9/25/96')
|
||||
define(`ALIAS_FILE', /usr/lib/mail/aliases)dnl
|
||||
ifdef(`QUEUE_DIR',, `define(`QUEUE_DIR', /usr/spool/mqueue)')dnl
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /usr/lib/sendmail.st)')dnl
|
||||
ifdef(`UUCP_MAILER_PATH',, `define(`UUCP_MAILER_PATH', /usr/bin/uux)')dnl
|
||||
ifdef(`LOCAL_MAILER_PATH',, `define(`LOCAL_MAILER_PATH', /usr/bin/lmail)')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', PuhCE)')dnl
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', PuhCE9)')dnl
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `lmail $u')')dnl
|
||||
ifdef(`LOCAL_SHELL_FLAGS',, `define(`LOCAL_SHELL_FLAGS', Peu)')dnl
|
||||
|
|
|
@ -34,12 +34,13 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)solaris2.m4 8.6 (Berkeley) 11/13/95')
|
||||
VERSIONID(`@(#)solaris2.m4 8.9 (Berkeley) 9/25/96')
|
||||
divert(-1)
|
||||
|
||||
ifdef(`ALIAS_FILE',, `define(`ALIAS_FILE', /etc/mail/aliases)')
|
||||
define(`ALIAS_FILE', /etc/mail/aliases)
|
||||
ifdef(`HELP_FILE',, `define(`HELP_FILE', /etc/mail/sendmail.hf)')
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /etc/mail/sendmail.st)')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `SnE')')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `SnE9')')
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `mail -f $g -d $u')')
|
||||
ifdef(`UUCP_MAILER_ARGS',, `define(`UUCP_MAILER_ARGS', `uux - -r -a$g $h!rmail ($u)')')
|
||||
define(`confCW_FILE', /etc/mail/sendmail.cw)
|
||||
|
|
51
usr.sbin/sendmail/cf/ostype/solaris2.ml.m4
Normal file
51
usr.sbin/sendmail/cf/ostype/solaris2.ml.m4
Normal file
|
@ -0,0 +1,51 @@
|
|||
divert(-1)
|
||||
#
|
||||
# Copyright (c) 1983 Eric P. Allman
|
||||
# Copyright (c) 1988, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# This ostype file is suitable for use on Solaris 2.x systems that
|
||||
# have mail.local installed. It is my understanding that this is
|
||||
# standard as of Solaris 2.5.
|
||||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)solaris2.ml.m4 8.2 (Berkeley) 9/25/96')
|
||||
divert(-1)
|
||||
|
||||
define(`ALIAS_FILE', /etc/mail/aliases)
|
||||
ifdef(`HELP_FILE',, `define(`HELP_FILE', /etc/mail/sendmail.hf)')
|
||||
ifdef(`STATUS_FILE',, `define(`STATUS_FILE', /etc/mail/sendmail.st)')
|
||||
ifdef(`LOCAL_MAILER_PATH',, `define(`LOCAL_MAILER_PATH', `/usr/lib/mail.local')')
|
||||
ifdef(`LOCAL_MAILER_FLAGS',, `define(`LOCAL_MAILER_FLAGS', `fSmn9')')
|
||||
ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `mail.local -d $u')')
|
||||
ifdef(`UUCP_MAILER_ARGS',, `define(`UUCP_MAILER_ARGS', `uux - -r -a$g $h!rmail ($u)')')
|
||||
define(`confCW_FILE', /etc/mail/sendmail.cw)
|
|
@ -34,12 +34,12 @@ divert(-1)
|
|||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)svr4.m4 8.2 (Berkeley) 5/26/95')
|
||||
VERSIONID(`@(#)svr4.m4 8.4 (Berkeley) 9/25/96')
|
||||
|
||||
ifdef(`ALIAS_FILE',,`define(`ALIAS_FILE', /usr/ucblib/aliases)')dnl
|
||||
define(`ALIAS_FILE', /usr/ucblib/aliases)dnl
|
||||
ifdef(`HELP_FILE',,`define(`HELP_FILE', /usr/ucblib/sendmail.hf)')dnl
|
||||
ifdef(`STATUS_FILE',,`define(`STATUS_FILE', /usr/ucblib/sendmail.st)')dnl
|
||||
define(`LOCAL_MAILER_PATH', `/usr/ucblib/binmail')dnl
|
||||
define(`LOCAL_MAILER_FLAGS', `rmn')dnl
|
||||
define(`LOCAL_MAILER_FLAGS', `rmn9')dnl
|
||||
define(`LOCAL_SHELL_FLAGS', `ehuP')dnl
|
||||
define(`UUCP_MAILER_ARGS', `uux - -r -a$g -gmedium $h!rmail ($u)')dnl
|
||||
|
|
49
usr.sbin/sendmail/cf/ostype/uxpds.m4
Normal file
49
usr.sbin/sendmail/cf/ostype/uxpds.m4
Normal file
|
@ -0,0 +1,49 @@
|
|||
divert(-1)
|
||||
#
|
||||
# Copyright (c) 1983 Eric P. Allman
|
||||
# Copyright (c) 1988, 1993
|
||||
# The Regents of the University of California. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# California, Berkeley and its contributors.
|
||||
# 4. Neither the name of the University nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# Definitions for UXP/DS (Fujitsu/ICL DS/90 series)
|
||||
# Diego R. Lopez, CICA (Seville). 1995
|
||||
#
|
||||
|
||||
divert(0)
|
||||
VERSIONID(`@(#)uxpds.m4 8.3 (Berkeley) 9/25/96')
|
||||
|
||||
define(`confDEF_GROUP_ID', `6')
|
||||
define(`ALIAS_FILE', /usr/ucblib/aliases)dnl
|
||||
ifdef(`HELP_FILE',,`define(`HELP_FILE', /usr/ucblib/sendmail.hf)')dnl
|
||||
ifdef(`STATUS_FILE',,`define(`STATUS_FILE', /usr/ucblib/sendmail.st)')dnl
|
||||
define(`LOCAL_MAILER_PATH', `/usr/ucblib/binmail')dnl
|
||||
define(`LOCAL_MAILER_FLAGS', `rmn9')dnl
|
||||
define(`LOCAL_SHELL_FLAGS', `ehuP')dnl
|
||||
define(`UUCP_MAILER_ARGS', `uux - -r -a$f -gmedium $h!rmail ($u)')dnl
|
203
usr.sbin/sendmail/contrib/re-mqueue.pl
Normal file
203
usr.sbin/sendmail/contrib/re-mqueue.pl
Normal file
|
@ -0,0 +1,203 @@
|
|||
#!/usr/bin/perl
|
||||
#
|
||||
# re-mqueue -- requeue messages from queueA to queueB based on age.
|
||||
#
|
||||
# Contributed by Paul Pomes <ppomes@Qualcomm.COM>.
|
||||
# http://www.qualcomm.com/~ppomes/
|
||||
#
|
||||
# Usage: re-mqueue [-d] queueA queueB seconds
|
||||
#
|
||||
# -d enable debugging
|
||||
# queueA source directory
|
||||
# queueB destination directory
|
||||
# seconds select files older than this number of seconds
|
||||
#
|
||||
# Example: re-mqueue /var/spool/mqueue /var/spool/mqueue2 2700
|
||||
#
|
||||
# Moves the qf* and df* files for a message from /var/spool/mqueue to
|
||||
# /var/spool/mqueue2 if the df* file is over 2700 seconds old.
|
||||
#
|
||||
# The qf* file can't be used for age checking as it's partially re-written
|
||||
# with the results of the last queue run.
|
||||
#
|
||||
# Rationale: With a limited number of sendmail processes allowed to run,
|
||||
# messages that can't be delivered immediately slow down the ones that can.
|
||||
# This becomes especially important when messages are being queued instead
|
||||
# of delivered right away, or when the queue becomes excessively deep.
|
||||
# By putting messages that have already failed one or more delivery attempts
|
||||
# into another queue, the primary queue can be kept small and fast.
|
||||
#
|
||||
# On postoffice.cso.uiuc.edu, the primary sendmail daemon runs the queue
|
||||
# every thirty minutes. Messages over 45 minutues old are moved to
|
||||
# /var/spool/mqueue2 where sendmail runs every hour. Messages more than
|
||||
# 3.25 hours old are moved to /var/spool/mqueue3 where sendmail runs every
|
||||
# four hours. Messages more than a day old are moved to /var/spool/mqueue4
|
||||
# where sendmail runs three times a day. The idea is that a message is
|
||||
# tried at least twice in the first three queues before being moved to the
|
||||
# old-age ghetto.
|
||||
#
|
||||
# (Each must be re-formed into a single line before using in crontab)
|
||||
#
|
||||
# 08 * * * * /usr/local/libexec/re-mqueue /var/spool/mqueue ## /var/spool/mqueue2 2700
|
||||
# 11 * * * * /usr/lib/sendmail -oQ/var/spool/mqueue2 -q > ## > /var/log/mqueue2 2>&1
|
||||
# 38 * * * * /usr/local/libexec/re-mqueue /var/spool/mqueue2
|
||||
# /var/spool/mqueue3 11700
|
||||
# 41 1,5,9,13,17,21 * * * /usr/lib/sendmail -oQ/var/spool/mqueue3 -q ## > /var/log/mqueue3 2>&1
|
||||
# 48 * * * * /usr/local/libexec/re-mqueue /var/spool/mqueue3
|
||||
# /var/spool/mqueue4 100000
|
||||
#53 3,11,19 * * * /usr/lib/sendmail -oQ/var/spool/mqueue4 -q > ## > /var/log/mqueue4 2>&1
|
||||
#
|
||||
#
|
||||
# N.B., the moves are done with link(). This has two effects: 1) the mqueue*
|
||||
# directories must all be on the same filesystem, and 2) the file modification
|
||||
# times are not changed. All times must be cumulative from when the df*
|
||||
# file was created.
|
||||
#
|
||||
# Copyright (c) 1995 University of Illinois Board of Trustees and Paul Pomes
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. All advertising materials mentioning features or use of this software
|
||||
# must display the following acknowledgement:
|
||||
# This product includes software developed by the University of
|
||||
# Illinois at Urbana and their contributors.
|
||||
# 4. Neither the name of the University nor the names of their contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE TRUSTEES AND CONTRIBUTORS ``AS IS'' AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE TRUSTEES OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# @(#)$Id: re-mqueue,v 1.3 1995/05/25 18:14:53 p-pomes Exp $
|
||||
|
||||
require "syslog.pl";
|
||||
|
||||
$LOCK_EX = 2;
|
||||
$LOCK_NB = 4;
|
||||
$LOCK_UN = 8;
|
||||
|
||||
# Count arguments, exit if wrong in any way.
|
||||
die "Usage: $0 [-d] queueA queueB seconds\n" if ($#ARGV < 2);
|
||||
|
||||
while ($_ = $ARGV[0], /^-/) {
|
||||
shift;
|
||||
last if /^--$/;
|
||||
/^-d/ && $debug++;
|
||||
}
|
||||
|
||||
$queueA = shift;
|
||||
$queueB = shift;
|
||||
$age = shift;
|
||||
|
||||
die "$0: $queueA not a directory\n" if (! -d $queueA);
|
||||
die "$0: $queueB not a directory\n" if (! -d $queueB);
|
||||
die "$0: $age isn't a valid number of seconds for age\n" if ($age =~ /\D/);
|
||||
|
||||
# chdir to $queueA and read the directory. When a df* file is found, stat it.
|
||||
# If it's older than $age, lock the corresponding qf* file. If the lock
|
||||
# fails, give up and move on. Once the lock is obtained, verify that files
|
||||
# of the same name *don't* already exist in $queueB and move on if they do.
|
||||
# Otherwise re-link the qf* and df* files into $queueB then release the lock.
|
||||
|
||||
chdir "$queueA" || die "$0: can't cd to $queueA: $!\n";
|
||||
opendir (QA, ".") || die "$0: can't open directory $queueA for reading: $!\n";
|
||||
@dfiles = grep(/^df/, readdir(QA));
|
||||
$now = time();
|
||||
($program = $0) =~ s,.*/,,;
|
||||
&openlog($program, 'pid', 'mail');
|
||||
|
||||
# Loop through the dfiles
|
||||
while ($dfile = pop(@dfiles)) {
|
||||
print "Checking $dfile\n" if ($debug);
|
||||
($qfile = $dfile) =~ s/^d/q/;
|
||||
($mfile = $dfile) =~ s/^df//;
|
||||
if (! -e $dfile || -z $dfile) {
|
||||
print "$dfile is gone or zero bytes - skipping\n" if ($debug);
|
||||
next;
|
||||
}
|
||||
if (! -e $qfile || -z $qfile) {
|
||||
print "$qfile is gone or zero bytes - skipping\n" if ($debug);
|
||||
next;
|
||||
}
|
||||
|
||||
$mtime = $now;
|
||||
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
|
||||
$atime,$mtime,$ctime,$blksize,$blocks) = stat($dfile);
|
||||
|
||||
# Compare timestamps
|
||||
if (($mtime + $age) > $now) {
|
||||
printf ("%s is %d seconds old - skipping\n", $dfile, $now-$mtime) if ($debug);
|
||||
next;
|
||||
}
|
||||
|
||||
# See if files of the same name already exist in $queueB
|
||||
if (-e "$queueB/$dfile") {
|
||||
print "$queueb/$dfile already exists - skipping\n" if ($debug);
|
||||
next;
|
||||
}
|
||||
if (-e "$queueB/$qfile") {
|
||||
print "$queueb/$qfile already exists - skipping\n" if ($debug);
|
||||
next;
|
||||
}
|
||||
|
||||
# Try and lock qf* file
|
||||
unless (open(QF, ">>$qfile")) {
|
||||
print "$qfile: $!\n" if ($debug);
|
||||
next;
|
||||
}
|
||||
$retval = flock(QF, $LOCK_EX|$LOCK_NB) || ($retval = -1);
|
||||
if ($retval == -1) {
|
||||
print "$qfile already flock()ed - skipping\n" if ($debug);
|
||||
close(QF);
|
||||
next;
|
||||
}
|
||||
print "$qfile now flock()ed\n" if ($debug);
|
||||
|
||||
# Show time! Do the link()s
|
||||
if (link("$dfile", "$queueB/$dfile") == 0) {
|
||||
&syslog('err', 'link(%s, %s/%s): %m', $dfile, $queueB, $dfile);
|
||||
print STDERR "$0: link($dfile, $queueB/$dfile): $!\n";
|
||||
exit (1);
|
||||
}
|
||||
if (link("$qfile", "$queueB/$qfile") == 0) {
|
||||
&syslog('err', 'link(%s, %s/%s): %m', $qfile, $queueB, $qfile);
|
||||
print STDERR "$0: link($qfile, $queueB/$qfile): $!\n";
|
||||
unlink("$queueB/$dfile");
|
||||
exit (1);
|
||||
}
|
||||
|
||||
# Links created successfully. Unlink the original files, release the
|
||||
# lock, and close the file.
|
||||
print "links ok\n" if ($debug);
|
||||
if (unlink($qfile) == 0) {
|
||||
&syslog('err', 'unlink(%s): %m', $qfile);
|
||||
print STDERR "$0: unlink($qfile): $!\n";
|
||||
exit (1);
|
||||
}
|
||||
if (unlink($dfile) == 0) {
|
||||
&syslog('err', 'unlink(%s): %m', $dfile);
|
||||
print STDERR "$0: unlink($dfile): $!\n";
|
||||
exit (1);
|
||||
}
|
||||
flock(QF, $LOCK_UN);
|
||||
close(QF);
|
||||
&syslog('info', '%s moved to %s', $mfile, $queueB);
|
||||
print "Done with $dfile $qfile\n\n" if ($debug);
|
||||
}
|
||||
exit 0;
|
File diff suppressed because it is too large
Load diff
|
@ -38,7 +38,7 @@ static char copyright[] =
|
|||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)mail.local.c 8.22 (Berkeley) 6/21/95";
|
||||
static char sccsid[] = "@(#)mail.local.c 8.30 (Berkeley) 10/9/96";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
|
@ -63,10 +63,13 @@ static char sccsid[] = "@(#)mail.local.c 8.22 (Berkeley) 6/21/95";
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sysexits.h>
|
||||
#include <syslog.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#ifdef EX_OK
|
||||
# undef EX_OK /* unistd.h may have another use for this */
|
||||
#endif
|
||||
#include <sysexits.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#if __STDC__
|
||||
|
@ -75,6 +78,46 @@ static char sccsid[] = "@(#)mail.local.c 8.22 (Berkeley) 6/21/95";
|
|||
#include <varargs.h>
|
||||
#endif
|
||||
|
||||
#if (defined(sun) && defined(__svr4__)) || defined(__SVR4)
|
||||
# define USE_LOCKF 1
|
||||
# define USE_SETEUID 1
|
||||
# define _PATH_MAILDIR "/var/mail"
|
||||
#endif
|
||||
|
||||
#if defined(_AIX)
|
||||
# define USE_LOCKF 1
|
||||
# define USE_VSYSLOG 0
|
||||
#endif
|
||||
|
||||
#if defined(ultrix)
|
||||
# define USE_VSYSLOG 0
|
||||
#endif
|
||||
|
||||
#if defined(__osf__)
|
||||
# define USE_VSYSLOG 0
|
||||
#endif
|
||||
|
||||
#if defined(NeXT)
|
||||
# include <libc.h>
|
||||
# define _PATH_MAILDIR "/usr/spool/mail"
|
||||
# define __dead /* empty */
|
||||
# define S_IRUSR S_IREAD
|
||||
# define S_IWUSR S_IWRITE
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If you don't have flock, you could try using lockf instead.
|
||||
*/
|
||||
|
||||
#ifdef USE_LOCKF
|
||||
# define flock(a, b) lockf(a, b, 0)
|
||||
# define LOCK_EX F_LOCK
|
||||
#endif
|
||||
|
||||
#ifndef USE_VSYSLOG
|
||||
# define USE_VSYSLOG 1
|
||||
#endif
|
||||
|
||||
#ifndef LOCK_EX
|
||||
# include <sys/file.h>
|
||||
#endif
|
||||
|
@ -101,8 +144,12 @@ static char sccsid[] = "@(#)mail.local.c 8.22 (Berkeley) 6/21/95";
|
|||
|
||||
#ifndef BSD4_4
|
||||
# define _BSD_VA_LIST_ va_list
|
||||
#endif
|
||||
|
||||
#if !defined(BSD4_4) && !defined(linux)
|
||||
extern char *strerror __P((int));
|
||||
extern int snprintf __P((char *, int, const char *, ...));
|
||||
extern FILE *fdopen __P((int, const char *));
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -135,6 +182,8 @@ int store __P((char *));
|
|||
void usage __P((void));
|
||||
void vwarn __P((const char *, _BSD_VA_LIST_));
|
||||
void warn __P((const char *, ...));
|
||||
void lockmbox __P((char *));
|
||||
void unlockmbox __P((void));
|
||||
|
||||
int
|
||||
main(argc, argv)
|
||||
|
@ -341,15 +390,16 @@ deliver(fd, name)
|
|||
warn("%s: irregular file", path);
|
||||
goto err0;
|
||||
} else if (sb.st_uid != pw->pw_uid) {
|
||||
eval = EX_CANTCREAT;
|
||||
warn("%s: wrong ownership (%d)", path, sb.st_uid);
|
||||
unlockmbox();
|
||||
return;
|
||||
goto err0;
|
||||
} else {
|
||||
mbfd = open(path, O_APPEND|O_WRONLY, 0);
|
||||
if (mbfd != -1 &&
|
||||
(fstat(mbfd, &fsb) || fsb.st_nlink != 1 ||
|
||||
!S_ISREG(fsb.st_mode) || sb.st_dev != fsb.st_dev ||
|
||||
sb.st_ino != fsb.st_ino || sb.st_uid != fsb.st_uid)) {
|
||||
eval = EX_CANTCREAT;
|
||||
warn("%s: file changed after open", path);
|
||||
goto err1;
|
||||
}
|
||||
|
@ -449,6 +499,7 @@ err0: unlockmbox();
|
|||
char lockname[MAXPATHLEN];
|
||||
int locked = 0;
|
||||
|
||||
void
|
||||
lockmbox(path)
|
||||
char *path;
|
||||
{
|
||||
|
@ -481,6 +532,7 @@ lockmbox(path)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
unlockmbox()
|
||||
{
|
||||
if (!locked)
|
||||
|
@ -587,7 +639,7 @@ vwarn(fmt, ap)
|
|||
(void)vfprintf(stderr, fmt, ap);
|
||||
(void)fprintf(stderr, "\n");
|
||||
|
||||
#if !defined(ultrix) && !defined(__osf__)
|
||||
#if USE_VSYSLOG
|
||||
/* Log the message to syslog. */
|
||||
vsyslog(LOG_ERR, fmt, ap);
|
||||
#else
|
||||
|
@ -693,9 +745,8 @@ e_to_sys(num)
|
|||
}
|
||||
}
|
||||
|
||||
#ifndef BSD4_4
|
||||
#if !defined(BSD4_4) && !defined(__osf__)
|
||||
|
||||
# ifndef __osf__
|
||||
char *
|
||||
strerror(eno)
|
||||
int eno;
|
||||
|
@ -709,8 +760,11 @@ strerror(eno)
|
|||
(void) sprintf(ebuf, "Error %d", eno);
|
||||
return ebuf;
|
||||
}
|
||||
|
||||
# endif
|
||||
|
||||
#if !defined(BSD4_4) && !defined(linux)
|
||||
|
||||
# if __STDC__
|
||||
snprintf(char *buf, int bufsiz, const char *fmt, ...)
|
||||
# else
|
||||
|
|
8
usr.sbin/sendmail/mailstats/Makefile
Normal file
8
usr.sbin/sendmail/mailstats/Makefile
Normal file
|
@ -0,0 +1,8 @@
|
|||
# @(#)Makefile 8.2 (Berkeley) 9/21/96
|
||||
|
||||
PROG= mailstats
|
||||
MAN8= mailstats.0
|
||||
CFLAGS+=-I${.CURDIR}/../src
|
||||
|
||||
.include "../../Makefile.inc"
|
||||
.include <bsd.prog.mk>
|
|
@ -1,76 +1,80 @@
|
|||
.\"/*
|
||||
.\" * Copyright (c) 1996 John M. Vinopal
|
||||
.\" * All rights reserved.
|
||||
.\" *
|
||||
.\" * Redistribution and use in source and binary forms, with or without
|
||||
.\" * modification, are permitted provided that the following conditions
|
||||
.\" * are met:
|
||||
.\" * 1. Redistributions of source code must retain the above copyright
|
||||
.\" * notice, this list of conditions and the following disclaimer.
|
||||
.\" * 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" * notice, this list of conditions and the following disclaimer in the
|
||||
.\" * documentation and/or other materials provided with the distribution.
|
||||
.\" * 3. All advertising materials mentioning features or use of this software
|
||||
.\" * must display the following acknowledgement:
|
||||
.\" * This product includes software developed for the NetBSD Project
|
||||
.\" * by John M. Vinopal.
|
||||
.\" * 4. The name of the author may not be used to endorse or promote products
|
||||
.\" * derived from this software without specific prior written permission.
|
||||
.\" *
|
||||
.\" * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
.\" * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
.\" * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
.\" * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
.\" * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
.\" * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
.\" * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
.\" * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
.\" * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" * SUCH DAMAGE.
|
||||
.\" */
|
||||
.Dd August 13, 1996
|
||||
.Dt MAILSTATS 8
|
||||
.Os
|
||||
.\" @(#)mailstats.8 8.1 (Berkeley) 9/21/96
|
||||
.Dd April 25, 1996
|
||||
.Dt MAILSTATS 1
|
||||
.Os BSD 3
|
||||
.Sh NAME
|
||||
.Nm mailstats
|
||||
.Nd display mail protocol statistics
|
||||
.Nd display mail statistics
|
||||
.Sh SYNOPSIS
|
||||
.Nm mailstats
|
||||
.Op Fl o
|
||||
.Op Fl C Ar sendmail.cf
|
||||
.Op Fl f Ar sendmail.st
|
||||
.Op Fl C Ar cffile
|
||||
.Op Fl f Ar stfile
|
||||
.Sh DESCRIPTION
|
||||
.Nm Mailstats
|
||||
displays mail statistics on a per mailer basis.
|
||||
Each line of output contains
|
||||
the mailer number, the count and byte-count of incoming messages,
|
||||
the count and byte-count of outgoing messages, and the name of the
|
||||
mailer unless the
|
||||
.Fl o
|
||||
flag is specified. Common mailers include smtp and local (eg:
|
||||
.Nm mail.local,
|
||||
the program which handles local delivery of mail).
|
||||
The
|
||||
.Nm mailstats
|
||||
utility displays the current mail statistics.
|
||||
.Pp
|
||||
Statistics are read from the
|
||||
First, the time at which statistics started being kept is displayed,
|
||||
in the format specified by
|
||||
.Xr ctime 3 .
|
||||
Then,
|
||||
the statistics for each mailer are displayed on a single line,
|
||||
each with the following whitespace separated fields:
|
||||
.Pp
|
||||
.Bl -tag -width 10n -offset indent -compact
|
||||
.It Sy M
|
||||
The mailer number.
|
||||
.It Sy msgsfr
|
||||
Number of messages from the mailer.
|
||||
.It Sy bytes_from
|
||||
Kbytes from the mailer.
|
||||
.It Sy msgsto
|
||||
Number of messages to the mailer.
|
||||
.It Sy bytes_to
|
||||
Kbytes to the mailer.
|
||||
.It Sy Mailer
|
||||
The name of the mailer.
|
||||
.El
|
||||
.Pp
|
||||
After this display, a line totaling the values for all of the mailers
|
||||
is displayed,
|
||||
separated from the previous information by a line containing only equals
|
||||
.Pq Dq \&=
|
||||
characters.
|
||||
.Pp
|
||||
The options are as follows:
|
||||
.Bl -tag -width Ds
|
||||
.It Fl C
|
||||
Read the specified file instead of the default
|
||||
.Nm sendmail
|
||||
statistics file
|
||||
.Ar sendmail.st,
|
||||
the location of which is defined in
|
||||
.Ar sendmail.cf,
|
||||
or specified with the
|
||||
.Fl f
|
||||
flag. Mailers are likewise defined in the
|
||||
.Ar sendmail.cf
|
||||
file. Statistics are cumulative; zero the statistics file
|
||||
to reset the counters.
|
||||
.Dq cf
|
||||
file.
|
||||
.It Fl f
|
||||
Read the specified statistics file instead of the statistics file
|
||||
specified in the
|
||||
.Nm sendmail
|
||||
.Dq cf
|
||||
file.
|
||||
.It Fl o
|
||||
Don't display the name of the mailer in the output.
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Nm mailstats
|
||||
utility exits 0 on success, and >0 if an error occurs.
|
||||
.Sh FILES
|
||||
.Bl -tag -width /var/log/sendmail.st -compact
|
||||
.Bl -tag -width /var/log/sendmail.stXX -compact
|
||||
.It Pa /etc/sendmail.cf
|
||||
sendmail configuration file
|
||||
The default
|
||||
.Nm sendmail
|
||||
.Dq cf
|
||||
file.
|
||||
.It Pa /var/log/sendmail.st
|
||||
sendmail statistics file
|
||||
The default
|
||||
.Nm sendmail
|
||||
statistics file.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr mailq 1 ,
|
||||
.Xr sendmail 8
|
||||
.Xr mail.local 8
|
||||
|
|
|
@ -40,9 +40,10 @@ static char copyright[] =
|
|||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)mailstats.c 8.4 (Berkeley) 8/14/94";
|
||||
static char sccsid[] = "@(#)mailstats.c 8.8 (Berkeley) 9/25/96";
|
||||
#endif /* not lint */
|
||||
|
||||
#define NOT_SENDMAIL
|
||||
#include <sendmail.h>
|
||||
#include <mailstats.h>
|
||||
#include <pathnames.h>
|
||||
|
@ -91,7 +92,8 @@ main(argc, argv)
|
|||
case '?':
|
||||
default:
|
||||
usage:
|
||||
fputs("usage: mailstats [-C cffile] [-f stfile]\n", stderr);
|
||||
fputs("usage: mailstats [-C cffile] [-f stfile] -o\n",
|
||||
stderr);
|
||||
exit(EX_USAGE);
|
||||
}
|
||||
}
|
||||
|
@ -189,13 +191,24 @@ main(argc, argv)
|
|||
exit (EX_OSFILE);
|
||||
}
|
||||
|
||||
if ((fd = open(sfile, O_RDONLY)) < 0) {
|
||||
if ((fd = open(sfile, O_RDONLY)) < 0 ||
|
||||
(i = read(fd, &stat, sizeof stat)) < 0)
|
||||
{
|
||||
fputs("mailstats: ", stderr);
|
||||
perror(sfile);
|
||||
exit(EX_NOINPUT);
|
||||
}
|
||||
if (read(fd, &stat, sizeof(stat)) != sizeof(stat) ||
|
||||
stat.stat_size != sizeof(stat))
|
||||
if (i == 0)
|
||||
{
|
||||
sleep(1);
|
||||
i = read(fd, &stat, sizeof stat);
|
||||
if (i == 0)
|
||||
{
|
||||
bzero((ARBPTR_T) &stat, sizeof stat);
|
||||
(void) time(&stat.stat_itime);
|
||||
}
|
||||
}
|
||||
else if (i != sizeof stat || stat.stat_size != sizeof(stat))
|
||||
{
|
||||
fputs("mailstats: file size changed.\n", stderr);
|
||||
exit(EX_OSERR);
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)makemap.c 8.14 (Berkeley) 11/5/95";
|
||||
static char sccsid[] = "@(#)makemap.c 8.17 (Berkeley) 9/25/96";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -45,6 +45,7 @@ static char sccsid[] = "@(#)makemap.c 8.14 (Berkeley) 11/5/95";
|
|||
#ifndef ISC_UNIX
|
||||
# include <sys/file.h>
|
||||
#endif
|
||||
#define NOT_SENDMAIL
|
||||
#include "useful.h"
|
||||
#include "conf.h"
|
||||
|
||||
|
@ -95,6 +96,7 @@ main(argc, argv)
|
|||
int lineno;
|
||||
int st;
|
||||
int mode;
|
||||
int putflags;
|
||||
enum type type;
|
||||
int fd;
|
||||
union
|
||||
|
@ -211,20 +213,33 @@ main(argc, argv)
|
|||
bzero(&bti, sizeof bti);
|
||||
if (allowdups)
|
||||
bti.flags |= R_DUP;
|
||||
if (allowdups || allowreplace)
|
||||
putflags = 0;
|
||||
else
|
||||
putflags = R_NOOVERWRITE;
|
||||
break;
|
||||
|
||||
case T_HASH:
|
||||
if (allowreplace)
|
||||
putflags = 0;
|
||||
else
|
||||
putflags = R_NOOVERWRITE;
|
||||
break;
|
||||
#endif
|
||||
#ifdef NDBM
|
||||
case T_DBM:
|
||||
#endif
|
||||
if (allowdups)
|
||||
{
|
||||
fprintf(stderr, "%s: Type %s does not support -d (allow dups)\n",
|
||||
progname, typename);
|
||||
exit(EX_UNAVAILABLE);
|
||||
}
|
||||
if (allowreplace)
|
||||
putflags = DBM_REPLACE;
|
||||
else
|
||||
putflags = DBM_INSERT;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -386,16 +401,14 @@ main(argc, argv)
|
|||
{
|
||||
#ifdef NDBM
|
||||
case T_DBM:
|
||||
st = dbm_store(dbp.dbm, key.dbm, val.dbm,
|
||||
allowreplace ? DBM_REPLACE : DBM_INSERT);
|
||||
st = dbm_store(dbp.dbm, key.dbm, val.dbm, putflags);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef NEWDB
|
||||
case T_BTREE:
|
||||
case T_HASH:
|
||||
st = (*dbp.db->put)(dbp.db, &key.db, &val.db,
|
||||
allowreplace ? 0 : R_NOOVERWRITE);
|
||||
st = (*dbp.db->put)(dbp.db, &key.db, &val.db, putflags);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
|
9
usr.sbin/sendmail/praliases/Makefile
Normal file
9
usr.sbin/sendmail/praliases/Makefile
Normal file
|
@ -0,0 +1,9 @@
|
|||
# @(#)Makefile 8.2 (Berkeley) 9/21/96
|
||||
|
||||
PROG= praliases
|
||||
MAN8= praliases.0
|
||||
CFLAGS+=-I${.CURDIR}/../src
|
||||
DPADD= ${LIBDBM}
|
||||
|
||||
.include "../../Makefile.inc"
|
||||
.include <bsd.prog.mk>
|
41
usr.sbin/sendmail/praliases/praliases.8
Normal file
41
usr.sbin/sendmail/praliases/praliases.8
Normal file
|
@ -0,0 +1,41 @@
|
|||
.\" @(#)praliases.8 8.1 (Berkeley) 9/21/96
|
||||
.Dd April 25, 1996
|
||||
.Dt PRALIASES 1
|
||||
.Os BSD 3
|
||||
.Sh NAME
|
||||
.Nm praliases
|
||||
.Nd display system mail aliases
|
||||
.Sh SYNOPSIS
|
||||
.Nm praliases
|
||||
.Op Fl f Ar file
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm praliases
|
||||
utility displays the current system aliases,
|
||||
one per line, in no particular order.
|
||||
.Pp
|
||||
The options are as follows:
|
||||
.Bl -tag -width Ds
|
||||
.It Fl f
|
||||
Read the specified file instead of the default
|
||||
.Nm sendmail
|
||||
system aliases file.
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Nm praliases
|
||||
utility exits 0 on success, and >0 if an error occurs.
|
||||
.Sh FILES
|
||||
.Bl -tag -width /var/log/sendmail.stXX -compact
|
||||
.It Pa /etc/aliases
|
||||
The default
|
||||
.Nm sendmail
|
||||
system aliases file.
|
||||
.It Pa /etc/aliases.db
|
||||
The database version of the
|
||||
.Pa /etc/aliases
|
||||
file.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr mailq 1 ,
|
||||
.Xr sendmail 8
|
133
usr.sbin/sendmail/praliases/praliases.c
Normal file
133
usr.sbin/sendmail/praliases/praliases.c
Normal file
|
@ -0,0 +1,133 @@
|
|||
/*
|
||||
* Copyright (c) 1983 Eric P. Allman
|
||||
* Copyright (c) 1988, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char copyright[] =
|
||||
"@(#) Copyright (c) 1988, 1993\n\
|
||||
The Regents of the University of California. All rights reserved.\n";
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)praliases.c 8.4 (Berkeley) 9/25/96";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <ndbm.h>
|
||||
#define NOT_SENDMAIL
|
||||
#include <sendmail.h>
|
||||
#ifdef NEWDB
|
||||
#include <db.h>
|
||||
#endif
|
||||
|
||||
int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
extern char *optarg;
|
||||
extern int optind;
|
||||
DBM *dbp;
|
||||
datum content, key;
|
||||
char *filename;
|
||||
int ch;
|
||||
#ifdef NEWDB
|
||||
const DB *db;
|
||||
DBT newdbkey, newdbcontent;
|
||||
char buf[MAXNAME];
|
||||
#endif
|
||||
|
||||
filename = "/etc/aliases";
|
||||
while ((ch = getopt(argc, argv, "f:")) != EOF)
|
||||
switch((char)ch) {
|
||||
case 'f':
|
||||
filename = optarg;
|
||||
break;
|
||||
case '?':
|
||||
default:
|
||||
(void)fprintf(stderr, "usage: praliases [-f file]\n");
|
||||
exit(EX_USAGE);
|
||||
}
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
||||
#ifdef NEWDB
|
||||
(void) strcpy(buf, filename);
|
||||
(void) strcat(buf, ".db");
|
||||
if (db = dbopen(buf, O_RDONLY, 0444 , DB_HASH, NULL)) {
|
||||
if (!argc) {
|
||||
while(!db->seq(db, &newdbkey, &newdbcontent, R_NEXT))
|
||||
printf("%.*s:%.*s\n",
|
||||
newdbkey.size, newdbkey.data,
|
||||
newdbcontent.size, newdbcontent.data);
|
||||
}
|
||||
else for (; *argv; ++argv) {
|
||||
newdbkey.data = *argv;
|
||||
newdbkey.size = strlen(*argv) + 1;
|
||||
if (!db->get(db, &newdbkey, &newdbcontent, 0))
|
||||
printf("%s:%.*s\n", newdbkey.data,
|
||||
newdbcontent.size, newdbcontent.data);
|
||||
else
|
||||
printf("%s: No such key\n",
|
||||
newdbkey.data);
|
||||
}
|
||||
}
|
||||
else {
|
||||
#endif
|
||||
if ((dbp = dbm_open(filename, O_RDONLY, 0)) == NULL) {
|
||||
(void)fprintf(stderr,
|
||||
"praliases: %s: %s\n", filename, strerror(errno));
|
||||
exit(EX_OSFILE);
|
||||
}
|
||||
if (!argc)
|
||||
for (key = dbm_firstkey(dbp);
|
||||
key.dptr != NULL; key = dbm_nextkey(dbp)) {
|
||||
content = dbm_fetch(dbp, key);
|
||||
(void)printf("%.*s:%.*s\n",
|
||||
key.dsize, key.dptr,
|
||||
content.dsize, content.dptr);
|
||||
}
|
||||
else for (; *argv; ++argv) {
|
||||
key.dptr = *argv;
|
||||
key.dsize = strlen(*argv) + 1;
|
||||
content = dbm_fetch(dbp, key);
|
||||
if (!content.dptr)
|
||||
(void)printf("%s: No such key\n", key.dptr);
|
||||
else
|
||||
(void)printf("%s:%.*s\n", key.dptr,
|
||||
content.dsize, content.dptr);
|
||||
}
|
||||
#ifdef NEWDB
|
||||
}
|
||||
#endif
|
||||
exit(EX_OK);
|
||||
}
|
|
@ -30,7 +30,7 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)smrsh.8 8.1 (Berkeley) 11/13/94
|
||||
.\" @(#)smrsh.8 8.2 (Berkeley) 1/9/96
|
||||
.\"
|
||||
.TH SMRSH 8 11/02/93
|
||||
.SH NAME
|
||||
|
@ -62,8 +62,8 @@ limits programs to be in the directory
|
|||
/usr/adm/sm.bin,
|
||||
allowing the system administrator to choose the set of acceptable commands.
|
||||
It also rejects any commands with the characters
|
||||
`\`', `<', `>', `|', `;', `&', `$', `(', `)', `\r' (carriage return),
|
||||
or `\n' (newline)
|
||||
`\`', `<', `>', `|', `;', `&', `$', `(', `)', `\er' (carriage return),
|
||||
or `\en' (newline)
|
||||
on the command line to prevent ``end run'' attacks.
|
||||
.PP
|
||||
Initial pathnames on programs are stripped,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (c) 1983, 1995 Eric P. Allman
|
||||
# Copyright (c) 1983, 1995, 1996 Eric P. Allman
|
||||
# Copyright (c) 1988 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
#
|
||||
|
@ -30,7 +30,7 @@
|
|||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# @(#)READ_ME 8.113 (Berkeley) 11/29/95
|
||||
# @(#)READ_ME 8.125 (Berkeley) 10/18/96
|
||||
#
|
||||
|
||||
This directory contains the source files for sendmail.
|
||||
|
@ -144,46 +144,56 @@ There are several database formats that can be used for the alias files
|
|||
and for general maps. When used for alias files they interact in an
|
||||
attempt to be back compatible.
|
||||
|
||||
The three options are NEWDB (the new Berkeley DB package), NDBM (the
|
||||
older DBM implementation -- the very old V7 implementation is no
|
||||
longer supported), and NIS (Network Information Services). Used alone
|
||||
these just include the support they indicate. [If you are using NEWDB,
|
||||
get the latest version from FTP.CS.Berkeley.EDU in /ucb/4bsd/db.tar.Z
|
||||
(or db.tar.gz). DO NOT use the version from the Net2 distribution!
|
||||
However, if you are on BSD/386 or 386BSD-based systems, use the one
|
||||
that already exists on your system. You may need to #define OLD_NEWDB
|
||||
1 to do this.]
|
||||
The options are:
|
||||
|
||||
[NOTE WELL: it is CRITICAL that you remove ndbm.o from libdb.a and
|
||||
ndbm.h from the appropriate include directories if you want to get
|
||||
ndbm support. These files OVERRIDE calls to ndbm routines -- in
|
||||
particular, if you leave ndbm.h in, you can find yourself using
|
||||
the new db package even if you don't define NEWDB.]
|
||||
NEWDB The new Berkeley DB package. Some systems (e.g., BSD/OS and
|
||||
Digital UNIX 4.0) have this package pre-installed. If your
|
||||
system does not have NEWDB installed, get the latest version
|
||||
from FTP.CS.Berkeley.EDU in /ucb/4bsd/db.tar.gz (or db.tar.Z).
|
||||
DO NOT use the version from the Net2 distribution. If you are
|
||||
still running BSD/386 1.x, you will also need to define
|
||||
OLD_NEWDB.
|
||||
NDBM The older NDBM implementation -- the very old V7 DBM
|
||||
implementation is no longer supported.
|
||||
NIS Network Information Services. To use this you must have
|
||||
NIS support on your system.
|
||||
NISPLUS NIS+ (the revised NIS released with Solaris 2). You must
|
||||
have NIS+ support on your system to use this flag.
|
||||
HESIOD Support for Hesiod (from the DEC/Athena distribution). You
|
||||
must already have Hesiod support on your system for this to
|
||||
work. You may be able to get this to work with the MIT/Athena
|
||||
version of Hesiod, but that's likely to be a lot of work.
|
||||
LDAPMAP Lightweight Directory Lookup Protocol support. You will
|
||||
have to install the UMich ldap and lber libraries to use
|
||||
this flag.
|
||||
|
||||
>>> NOTE WELL for NEWDB support: it is CRITICAL that you remove ndbm.o
|
||||
>>> from libdb.a and ndbm.h from the appropriate include directories if
|
||||
>>> you want to get ndbm support. If you don't delete these, there is
|
||||
>>> absolutely no point to including -DNDBM, since it will just get you
|
||||
>>> another (inferior) API to the same format database. These files
|
||||
>>> OVERRIDE calls to ndbm routines -- in particular, if you leave ndbm.h
|
||||
>>> in, you can find yourself using the new db package even if you don't
|
||||
>>> define NEWDB.
|
||||
|
||||
If NEWDB and NDBM are defined (but not NIS), then sendmail will read
|
||||
NDBM format alias files, but the next time a newaliases is run the
|
||||
format will be converted to NEWDB; that format will be used forever
|
||||
more. This is intended as a transition feature. [Note however that
|
||||
the NEWDB library also catches and maps NDBM calls; you will have to
|
||||
back out this feature to get this to work. See ``Quirks'' section
|
||||
below for details.]
|
||||
more. This is intended as a transition feature.
|
||||
|
||||
If all three are defined and the name of the file includes the string
|
||||
"/yp/", sendmail will rebuild BOTH the NEWDB and NDBM format alias
|
||||
files. However, it will only read the NEWDB file; the NDBM format file
|
||||
is used only by the NIS subsystem.
|
||||
If NEWDB, NDBM, and NIS are all defined and the name of the file includes
|
||||
the string "/yp/", sendmail will rebuild BOTH the NEWDB and NDBM format
|
||||
alias files. However, it will only read the NEWDB file; the NDBM format
|
||||
file is used only by the NIS subsystem. This is needed because the NIS
|
||||
maps on an NIS server are built directly from the NDBM files.
|
||||
|
||||
If NDBM and NIS are defined (regardless of the definition of NEWDB),
|
||||
and the filename includes the string "/yp/", sendmail adds the special
|
||||
tokens "YP_LAST_MODIFIED" and "YP_MASTER_NAME", both of which are
|
||||
required if the NDBM file is to be used as an NIS map.
|
||||
|
||||
There is also preliminary support for NIS+ (-DNISPLUS), Hesiod
|
||||
(-DHESIOD), and NetInfo (-DNETINFO). These have not been well
|
||||
tested.
|
||||
|
||||
All of -DNEWDB, -DNDBM, -DNIS, -DNISPLUS, -DHESIOD, and -DNETINFO are
|
||||
normally defined in the DBMDEF line in the Makefile.
|
||||
All of these flags are normally defined in the DBMDEF line in the
|
||||
Makefile.
|
||||
|
||||
If you define NEWDB or HESIOD you get the User Database (USERDB)
|
||||
automatically. Generally you do want to have NEWDB for it to do
|
||||
|
@ -191,6 +201,11 @@ anything interesting. See above for getting the Berkeley "db"
|
|||
package (i.e., NEWDB). There is no separate "user database"
|
||||
package -- don't bother searching for it on the net.
|
||||
|
||||
Hesiod and LDAP require libraries that may not be installed with your
|
||||
system. These are outside of my ability to provide support. See the
|
||||
"Quirks" section for more information.
|
||||
|
||||
|
||||
|
||||
+---------------+
|
||||
| COMPILE FLAGS |
|
||||
|
@ -462,7 +477,7 @@ IP_SRCROUTE Define this to 1 to get IP source routing information
|
|||
it won't compile properly (that is, no support for fetching
|
||||
IP_OPTIONs), or it compiles but source-routed TCP connections
|
||||
either refuse to open or open and hang for no apparent reason.
|
||||
Ultrix and AIX are known to fail this way.
|
||||
Ultrix and AIX3 are known to fail this way.
|
||||
LOG Set this to get syslog(3) support. Defined by default
|
||||
in conf.h. You want this if at all possible.
|
||||
NETINET Set this to get TCP/IP support. Defined by default
|
||||
|
@ -500,6 +515,19 @@ HES_GETMAILHOST Define this to 1 if you are using Hesiod with the
|
|||
Hesiod distribution, but not with the DEC Hesiod distribution.
|
||||
XDEBUG Do additional internal checking. These don't cost too
|
||||
much; you might as well leave this on.
|
||||
TCPWRAPPERS Turns on support for the TCP wrappers library (-lwrap).
|
||||
This library is available on ftp.win.tue.nl in /pub/security;
|
||||
grab tcp_wrappers_<VER>.tar.gz (where <VER> is the highest
|
||||
numbered version).
|
||||
SECUREWARE Enable calls to the SecureWare luid enabling/changing routines.
|
||||
SecureWare is a C2 security package added to several UNIX's
|
||||
(notably ConvexOS) to get a C2 Secure system. This
|
||||
option causes mail delivery to be done with the luid of the
|
||||
recipient.
|
||||
SHARE_V1 Support for the fair share scheduler, version 1. Setting to
|
||||
1 causes final delivery to be done using the recipients
|
||||
resource limitations. So far as I know, this is only
|
||||
supported on ConvexOS.
|
||||
|
||||
|
||||
+---------------------+
|
||||
|
@ -515,7 +543,10 @@ dn_skipname.
|
|||
|
||||
Some people have had a problem with BIND 4.9; it uses some routines
|
||||
that it expects to be externally defined such as strerror(). It may
|
||||
help to link with "-l44bsd" to solve this problem.
|
||||
help to link with "-l44bsd" to solve this problem. This has apparently
|
||||
been fixed in later versions of BIND, starting around 4.9.3. In other
|
||||
words, if you use 4.9.0 through 4.9.2, you need -l44bsd; for earlier or
|
||||
later versions, you do not.
|
||||
|
||||
!PLEASE! be sure to link with the same version of the resolver as
|
||||
the header files you used -- some people have used the 4.9 headers
|
||||
|
@ -587,6 +618,13 @@ Configuration file location
|
|||
vendor location rather than changing the location in the sendmail
|
||||
binary.
|
||||
|
||||
ld: fatal: library -l44bsd: not found
|
||||
Most of the Makefiles include -l44bsd in the LIBS= definition;
|
||||
this is because several versions of BIND (4.9.0, 4.9.1, 4.9.2)
|
||||
require this library. If you are running one of these versions,
|
||||
install this library. Otherwise, just delete "-l44bsd" from the
|
||||
LIBS= line in the Makefile.
|
||||
|
||||
SunOS 4.x (Solaris 1.x)
|
||||
You may have to use -lresolv on SunOS. However, beware that
|
||||
this links in a new version of gethostbyname that does not
|
||||
|
@ -631,17 +669,18 @@ SunOS 4.0.2 (Sun 386i)
|
|||
(and change the Makefile to use this library).
|
||||
Note that the sendmail.cf and aliases files are found in /etc.
|
||||
|
||||
SunOS 4.1.3_U1
|
||||
Sendmail causes crashes on SunOS 4.1.3_U1. According to Sun
|
||||
bug number 1077939:
|
||||
SunOS 4.1.3, 4.1.3_U1
|
||||
Sendmail causes crashes on SunOS 4.1.3 and 4.1.3_U1. According
|
||||
to Sun bug number 1077939:
|
||||
|
||||
If an application does a getsockopt() on a SOCK_STREAM (TCP) socket
|
||||
after the other side of the connection has sent a TCP RESET for
|
||||
the stream, the kernel gets a Bus Trap in the tcp_ctloutput() or
|
||||
ip_ctloutput() routine.
|
||||
|
||||
This is fixed in patch 101790-01 (SunOS 4.1.3_U1: TCP socket and
|
||||
reset problems).
|
||||
For 4.1.3, this is fixed in patch 100584-08, available on the
|
||||
Sunsolve 2.7.1 or later CDs. For 4.1.3_U1, this is fixed in patch
|
||||
101790-01 (SunOS 4.1.3_U1: TCP socket and reset problems).
|
||||
|
||||
Solaris 2.x (SunOS 5.x)
|
||||
To compile for Solaris, be sure you use -DSOLARIS.
|
||||
|
@ -751,6 +790,10 @@ OSF/1
|
|||
Also, the enclosed makefile removed /usr/sbin/smtpd; if you need
|
||||
it, just create the link to the sendmail binary.
|
||||
|
||||
On DEC OSF/1 3.2 or earlier, the MatchGECOS option doesn't work
|
||||
properly due to a bug in the getpw* routines. If you want to use
|
||||
this, use -DDEC_OSF_BROKEN_GETPWENT=1. The problem is fixed in 3.2C.
|
||||
|
||||
IRIX
|
||||
The header files on SGI IRIX are completely prototyped, and as
|
||||
a result you can sometimes get some warning messages during
|
||||
|
@ -931,7 +974,22 @@ Linux
|
|||
of libc between 4.4.4 and 4.7.0 (snprintf improves security, so
|
||||
you want to use this if at all possible).
|
||||
|
||||
AIX
|
||||
NOTE ON LINUX & BIND: By default, the Makefiles for linux include
|
||||
header files in /usr/local/include and libraries in /usr/local/lib.
|
||||
If you've installed BIND on your system, the header files typically
|
||||
end up in the search path and you need to add "-lresolv" to the
|
||||
LIBS line in your Makefile. Really old versions may need to include
|
||||
"-l44bsd" as well (particularly if the link phase complains about
|
||||
missing strcasecmp, strncasecmp or strpbrk). Complaints about an
|
||||
undefined reference to `__dn_skipname' in domain.o are a sure sign
|
||||
that you need to add -lresolv to LIBS. Newer versions of linux
|
||||
are basically threaded BIND, so you may or may not see complaints
|
||||
if you accidentally mix BIND headers/libraries with virginal libc.
|
||||
If you have BIND headers in /usr/local/include (resolv.h, etc)
|
||||
you *should* be adding -lresolv to LIBS. Data structures may change
|
||||
and you'd be asking for a core dump.
|
||||
|
||||
AIX 3.x
|
||||
This version of sendmail does not support MB, MG, and MR resource
|
||||
records, which are supported by AIX sendmail.
|
||||
|
||||
|
@ -940,6 +998,56 @@ AIX
|
|||
necessary to replace the resolver, which will simplify installation.
|
||||
A new BIND resolver can be found at http://www.isc.org/isc/.
|
||||
|
||||
AIX 3.1.x
|
||||
The supplied load average code only works correctly for AIX 3.2.x.
|
||||
For 3.1, use -DLA_TYPE=LA_SUBR and get the latest ``monitor''
|
||||
package by Jussi Maki <jmaki@hut.fi> from ftp.funet.fi in the
|
||||
directory pub/unix/AIX/rs6000/monitor-1.12.tar.Z; use the loadavgd
|
||||
daemon, and the getloadavg subroutine supplied with that package.
|
||||
If you don't care about load average throttling, just turn off
|
||||
load average checking using -DLA_TYPE=LA_ZERO.
|
||||
|
||||
AIX 2.2.1
|
||||
Date: Mon Dec 4 14:14:56 CST 1995
|
||||
From: Mark Whetzel <markw@antimatr.houston.tx.us>
|
||||
Subject: Porting sendmail 8.7.2 to AIX V2 on the RT.
|
||||
|
||||
This version of sendmail does not support MB, MG, and MR resource
|
||||
records, which are supported by AIX sendmail.
|
||||
|
||||
AIX V2 on the RT does not have 'paths.h'. Create a null
|
||||
file in the 'obj' directory to remove this compile error.
|
||||
|
||||
A patch file is needed to get the BSD 'db' library to compile
|
||||
for AIX/RT. I have sent the necessary updates to the author,
|
||||
but they may not be immediately available.
|
||||
|
||||
The original AIX/RT resolver libraries are very old, and you
|
||||
should get the latest BIND to replace it. The 4.8.3 version
|
||||
has been tested, but 4.9.x is out and should work.
|
||||
|
||||
To make the load average code work correctly requires an
|
||||
external routine, as the kernel does not maintain system
|
||||
load averages, similar to AIX V3.1.x. A reverse port of the
|
||||
older 1.05 'monitor' load average daemon code written by
|
||||
Jussi Maki that will work on AIX V2 for the RT is available
|
||||
by E-mail to Mark Whetzel <markw@antimatr.houston.tx.us>.
|
||||
That code depends on an external daemon to collect system
|
||||
load information, and the external routine 'getloadavg',
|
||||
that will return that information. The 'LA_SUBR' define
|
||||
will handle this for AIX V2 on the RT.
|
||||
|
||||
Note: You will have to change the Makefile.AIX.2 to correctly
|
||||
point to the locatons of the updated BIND source tree and
|
||||
the location of the 'newdb' tree and library location.
|
||||
You will also have to change the Makefile.AIX.2 to know
|
||||
about the location of the 'getloadavg' routine if you use
|
||||
the LA_SUBR define.
|
||||
|
||||
|
||||
Manual pages will format correctly if given the mandoc macros
|
||||
and used with nroff. I have not tried groff.
|
||||
|
||||
RISC/os
|
||||
RISC/os from MIPS is a merged AT&T/Berkeley system. When you
|
||||
compile on that platform you will get duplicate definitions
|
||||
|
@ -1081,7 +1189,7 @@ Listproc 6.0c
|
|||
From: alansz@mellers1.psych.berkeley.edu (Alan Schwartz)
|
||||
Subject: Listproc 6.0c + Sendmail 8.7 [Helpful hint]
|
||||
|
||||
Just upgraded to sendmail 8.7, and discovered that listproc 6.0c
|
||||
Just upgraded to sendmail 8.7, and discovered that listproc 6.0c
|
||||
breaks, because it, by default, sends a blank "HELO" rather than
|
||||
a "HELO hostname" when using the 'system' or 'telnet' mailmethod.
|
||||
|
||||
|
@ -1089,6 +1197,56 @@ Listproc 6.0c
|
|||
cause it to use "HELO hostname" (which Z-mail apparently requires
|
||||
as well. :)
|
||||
|
||||
LDAP
|
||||
LDAP was provided by Booker Bense <bbense@networking.stanford.edu> of
|
||||
Stanford University. From Booker:
|
||||
|
||||
- The patch attached to this message implements an Ldap map class.
|
||||
Currently we are using this at stanford to support campus-wide
|
||||
email addressing. This project is discussed at
|
||||
http://www-leland.stanford.edu/group/networking/project/sunetid.html
|
||||
|
||||
- Currently we are using the ldap map as follows:
|
||||
|
||||
Kluser ldapx
|
||||
-h"localhost borax.stanford.edu borate.stanford.edu boron.stanford.edu"
|
||||
-k"mailacceptinggeneralid=%s" -v maildrop
|
||||
|
||||
and in Rule set S5
|
||||
|
||||
# Now attempt to lookup in luser (ldap map)
|
||||
R< $L > $+ $: < $L > $( luser $1 $)
|
||||
R< $* > $+ @ $+ $: < $3 > $2 Rewrite if forward
|
||||
|
||||
- The map definition supports most of the standard Map args plus most
|
||||
of the command line options of ldapsearch. The software is currently
|
||||
limited to only accepting the first entry returned. It expects that
|
||||
the map defines an ldap filter that returns at most 1 valid entry.
|
||||
It requires the ldap and lber libraries from the Umich Ldap3.2
|
||||
release.
|
||||
|
||||
- KNOWN BUGS: It does not work under Digital Unix 3.2c, with gcc and
|
||||
ldap3.2 or ldap3.3. It dumps core after attempting to take strlen
|
||||
of a garbage string pointer in the lber libraries routine
|
||||
ber_printf.
|
||||
|
||||
The string pointer in question is set to 0x50000000, when the
|
||||
program crashes. If anyone recognizes where this magic number comes
|
||||
from that would be really helpful.
|
||||
|
||||
I've tested the software on Solaris.2.4 with gcc and on NeXTStep3.2
|
||||
and it runs without problems. If you have any questions, please
|
||||
send them along.
|
||||
|
||||
TCP Wrappers
|
||||
If you are using -DTCPWRAPPERS to get TCP Wrappers support, you will
|
||||
also need to install libwrap.a (you can get it from ftp.win.tue.nl)
|
||||
and modify the Makefile to include -lwrap in the LIBS line.
|
||||
|
||||
If you have alternate MX sites for your site, be sure that all of
|
||||
your MX sites reject the same set of hosts. If not, a bad guy whom
|
||||
you reject will connect to your site, fail, and move on to the next
|
||||
MX site, which will accept the mail for your and forward it on to you.
|
||||
|
||||
|
||||
+--------------+
|
||||
|
@ -1190,4 +1348,4 @@ version.c The version number and information about this
|
|||
|
||||
Eric Allman
|
||||
|
||||
(Version 8.113, last update 11/29/95 11:05:14)
|
||||
(Version 8.125, last update 10/18/96 07:32:40)
|
||||
|
|
|
@ -62,9 +62,11 @@
|
|||
53 util.c xfclose
|
||||
54 err.c putoutmsg
|
||||
55 conf.c lockfile
|
||||
59 Extended Load Average implementation from Christophe Wolfhugel
|
||||
56 mci.c persistent host status
|
||||
57 util.c snprintf
|
||||
60 map.c
|
||||
61 conf.c sm_gethostbyname
|
||||
62 multiple file descriptor checking
|
||||
80 content length
|
||||
81 sun remote mode
|
||||
91 mci.c syslogging of MCI cache information
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1983, 1995 Eric P. Allman
|
||||
* Copyright (c) 1983, 1995, 1996 Eric P. Allman
|
||||
* Copyright (c) 1988, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
|
@ -35,7 +35,7 @@
|
|||
# include "sendmail.h"
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)alias.c 8.52.1.3 (Berkeley) 9/16/96";
|
||||
static char sccsid[] = "@(#)alias.c 8.66 (Berkeley) 9/20/96";
|
||||
#endif /* not lint */
|
||||
|
||||
|
||||
|
@ -152,8 +152,6 @@ alias(a, sendq, aliaslevel, e)
|
|||
(void) strcat(obuf, "owner");
|
||||
else
|
||||
(void) strcat(obuf, a->q_user);
|
||||
if (!bitnset(M_USR_UPPER, a->q_mailer->m_flags))
|
||||
makelower(obuf);
|
||||
owner = aliaslookup(obuf, &stat, e);
|
||||
if (owner == NULL)
|
||||
return;
|
||||
|
@ -207,6 +205,11 @@ aliaslookup(name, pstat, e)
|
|||
}
|
||||
if (!bitset(MF_OPEN, map->map_mflags))
|
||||
return NULL;
|
||||
|
||||
/* special case POstMastER -- always use lower case */
|
||||
if (strcasecmp(name, "postmaster") == 0)
|
||||
name = "postmaster";
|
||||
|
||||
return (*map->map_class->map_lookup)(map, name, NULL, pstat);
|
||||
}
|
||||
/*
|
||||
|
@ -292,8 +295,7 @@ setalias(spec)
|
|||
s = stab(class, ST_MAPCLASS, ST_FIND);
|
||||
if (s == NULL)
|
||||
{
|
||||
if (tTd(27, 1))
|
||||
printf("Unknown alias class %s\n", class);
|
||||
syserr("setalias: unknown alias class %s", class);
|
||||
}
|
||||
else if (!bitset(MCF_ALIASOK, s->s_mapclass.map_cflags))
|
||||
{
|
||||
|
@ -494,7 +496,7 @@ rebuildaliases(map, automatic)
|
|||
!lockfile(fileno(af), map->map_file, NULL, LOCK_EX|LOCK_NB))
|
||||
{
|
||||
/* yes, they are -- wait until done */
|
||||
message("Alias file %s is already being rebuilt",
|
||||
message("Alias file %s is locked (maybe being rebuilt)",
|
||||
map->map_file);
|
||||
if (OpMode != MD_INITALIAS)
|
||||
{
|
||||
|
@ -710,10 +712,12 @@ readaliases(map, af, announcestats, logstats)
|
|||
}
|
||||
|
||||
/*
|
||||
** Insert alias into symbol table or DBM file
|
||||
** Insert alias into symbol table or database file.
|
||||
**
|
||||
** Special case pOStmaStER -- always make it lower case.
|
||||
*/
|
||||
|
||||
if (!bitnset(M_USR_UPPER, al.q_mailer->m_flags))
|
||||
if (strcasecmp(al.q_user, "postmaster") == 0)
|
||||
makelower(al.q_user);
|
||||
|
||||
lhssize = strlen(al.q_user);
|
||||
|
@ -776,6 +780,7 @@ forward(user, sendq, aliaslevel, e)
|
|||
{
|
||||
char *pp;
|
||||
char *ep;
|
||||
bool got_transient;
|
||||
|
||||
if (tTd(27, 1))
|
||||
printf("forward(%s)\n", user->q_paddr);
|
||||
|
@ -786,7 +791,7 @@ forward(user, sendq, aliaslevel, e)
|
|||
if (user->q_home == NULL)
|
||||
{
|
||||
syserr("554 forward: no home");
|
||||
user->q_home = "/nosuchdirectory";
|
||||
user->q_home = "/no/such/directory";
|
||||
}
|
||||
|
||||
/* good address -- look for .forward file in home */
|
||||
|
@ -796,11 +801,11 @@ forward(user, sendq, aliaslevel, e)
|
|||
if (ForwardPath == NULL)
|
||||
ForwardPath = newstr("\201z/.forward");
|
||||
|
||||
got_transient = FALSE;
|
||||
for (pp = ForwardPath; pp != NULL; pp = ep)
|
||||
{
|
||||
int err;
|
||||
char buf[MAXPATHLEN+1];
|
||||
extern int include();
|
||||
|
||||
ep = strchr(pp, ':');
|
||||
if (ep != NULL)
|
||||
|
@ -808,6 +813,8 @@ forward(user, sendq, aliaslevel, e)
|
|||
expand(pp, buf, sizeof buf, e);
|
||||
if (ep != NULL)
|
||||
*ep++ = ':';
|
||||
if (buf[0] == '\0')
|
||||
continue;
|
||||
if (tTd(27, 3))
|
||||
printf("forward: trying %s\n", buf);
|
||||
|
||||
|
@ -816,7 +823,8 @@ forward(user, sendq, aliaslevel, e)
|
|||
break;
|
||||
else if (transienterror(err))
|
||||
{
|
||||
/* we have to suspend this message */
|
||||
/* we may have to suspend this message */
|
||||
got_transient = TRUE;
|
||||
if (tTd(27, 2))
|
||||
printf("forward: transient error on %s\n", buf);
|
||||
#ifdef LOG
|
||||
|
@ -825,9 +833,18 @@ forward(user, sendq, aliaslevel, e)
|
|||
e->e_id == NULL ? "NOQUEUE" : e->e_id,
|
||||
buf, errstring(err));
|
||||
#endif
|
||||
message("%s: %s: message queued", buf, errstring(err));
|
||||
user->q_flags |= QQUEUEUP;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (pp == NULL && got_transient)
|
||||
{
|
||||
/*
|
||||
** There was no successful .forward open and at least one
|
||||
** transient open. We have to defer this address for
|
||||
** further delivery.
|
||||
*/
|
||||
|
||||
message("transient .forward open error: message queued");
|
||||
user->q_flags |= QQUEUEUP;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1983, 1995 Eric P. Allman
|
||||
* Copyright (c) 1983, 1995, 1996 Eric P. Allman
|
||||
* Copyright (c) 1988, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
|
@ -33,7 +33,7 @@
|
|||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)arpadate.c 8.4.1.1 (Berkeley) 9/16/96";
|
||||
static char sccsid[] = "@(#)arpadate.c 8.6 (Berkeley) 9/16/96";
|
||||
#endif /* not lint */
|
||||
|
||||
# include "sendmail.h"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1983, 1995 Eric P. Allman
|
||||
* Copyright (c) 1983, 1995, 1996 Eric P. Allman
|
||||
* Copyright (c) 1988, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
|
@ -33,7 +33,7 @@
|
|||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)clock.c 8.12 (Berkeley) 5/23/95";
|
||||
static char sccsid[] = "@(#)clock.c 8.13 (Berkeley) 2/21/96";
|
||||
#endif /* not lint */
|
||||
|
||||
# include "sendmail.h"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1983, 1995 Eric P. Allman
|
||||
* Copyright (c) 1983, 1995, 1996 Eric P. Allman
|
||||
* Copyright (c) 1988, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
|
@ -33,7 +33,7 @@
|
|||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)collect.c 8.49 (Berkeley) 10/29/95";
|
||||
static char sccsid[] = "@(#)collect.c 8.58 (Berkeley) 9/18/96";
|
||||
#endif /* not lint */
|
||||
|
||||
# include <errno.h>
|
||||
|
@ -101,8 +101,8 @@ collect(fp, smtpmode, requeueflag, hdrp, e)
|
|||
int buflen;
|
||||
int istate;
|
||||
int mstate;
|
||||
char *pbp;
|
||||
char peekbuf[8];
|
||||
u_char *pbp;
|
||||
u_char peekbuf[8];
|
||||
char dfname[20];
|
||||
char bufbuf[MAXLINE];
|
||||
extern bool isheader();
|
||||
|
@ -170,9 +170,10 @@ collect(fp, smtpmode, requeueflag, hdrp, e)
|
|||
if (setjmp(CtxCollectTimeout) != 0)
|
||||
{
|
||||
#ifdef LOG
|
||||
syslog(LOG_NOTICE,
|
||||
"timeout waiting for input from %s during message collect",
|
||||
CurHostName ? CurHostName : "<local machine>");
|
||||
if (LogLevel > 2)
|
||||
syslog(LOG_NOTICE,
|
||||
"timeout waiting for input from %s during message collect",
|
||||
CurHostName ? CurHostName : "<local machine>");
|
||||
#endif
|
||||
errno = 0;
|
||||
usrerr("451 timeout waiting for input during message collect");
|
||||
|
@ -216,8 +217,6 @@ collect(fp, smtpmode, requeueflag, hdrp, e)
|
|||
c &= 0x7f;
|
||||
else
|
||||
HasEightBits |= bitset(0x80, c);
|
||||
if (!headeronly)
|
||||
e->e_msgsize++;
|
||||
}
|
||||
if (tTd(30, 94))
|
||||
printf("istate=%d, c=%c (0x%x)\n",
|
||||
|
@ -253,7 +252,7 @@ collect(fp, smtpmode, requeueflag, hdrp, e)
|
|||
break;
|
||||
|
||||
case IS_DOTCR:
|
||||
if (c == '\n')
|
||||
if (c == '\n' && !ignrdot)
|
||||
goto readerr;
|
||||
else
|
||||
{
|
||||
|
@ -287,6 +286,8 @@ collect(fp, smtpmode, requeueflag, hdrp, e)
|
|||
istate = IS_NORM;
|
||||
|
||||
bufferchar:
|
||||
if (!headeronly)
|
||||
e->e_msgsize++;
|
||||
if (mstate == MS_BODY)
|
||||
{
|
||||
/* just put the character out */
|
||||
|
@ -316,7 +317,13 @@ collect(fp, smtpmode, requeueflag, hdrp, e)
|
|||
if (obuf != bufbuf)
|
||||
free(obuf);
|
||||
}
|
||||
if (c != '\0')
|
||||
if (c >= 0200 && c <= 0237)
|
||||
{
|
||||
#if 0 /* causes complaints -- figure out something for 8.9 */
|
||||
usrerr("Illegal character 0x%x in header", c);
|
||||
#endif
|
||||
}
|
||||
else if (c != '\0')
|
||||
*bp++ = c;
|
||||
if (istate == IS_BOL)
|
||||
break;
|
||||
|
@ -564,7 +571,8 @@ collect(fp, smtpmode, requeueflag, hdrp, e)
|
|||
if (HasEightBits)
|
||||
{
|
||||
e->e_flags |= EF_HAS8BIT;
|
||||
if (!bitset(MM_PASS8BIT|MM_MIME8BIT, MimeMode))
|
||||
if (!bitset(MM_PASS8BIT|MM_MIME8BIT, MimeMode) &&
|
||||
!bitset(EF_IS_MIME, e->e_flags))
|
||||
{
|
||||
e->e_status = "5.6.1";
|
||||
usrerr("554 Eight bit data not allowed");
|
||||
|
@ -625,6 +633,7 @@ tferror(tf, e)
|
|||
struct stat st;
|
||||
long avail;
|
||||
long bsize;
|
||||
extern long freediskspace __P((char *, long *));
|
||||
|
||||
e->e_flags |= EF_NO_BODY_RETN;
|
||||
if (fstat(fileno(tf), &st) < 0)
|
||||
|
@ -729,7 +738,6 @@ eatfrom(fm, e)
|
|||
if (*p != '\0')
|
||||
{
|
||||
char *q;
|
||||
extern char *arpadate();
|
||||
|
||||
/* we have found a date */
|
||||
q = xalloc(25);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1983, 1995 Eric P. Allman
|
||||
* Copyright (c) 1983, 1995, 1996 Eric P. Allman
|
||||
* Copyright (c) 1988, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
|
@ -31,7 +31,7 @@
|
|||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)conf.h 8.220 (Berkeley) 11/29/95
|
||||
* @(#)conf.h 8.267 (Berkeley) 10/17/96
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -66,7 +66,7 @@ struct rusage; /* forward declaration to get gcc to shut up in wait.h */
|
|||
# define MAXMAILERS 25 /* maximum mailers known to system */
|
||||
# define MAXRWSETS 200 /* max # of sets of rewriting rules */
|
||||
# define MAXPRIORITIES 25 /* max values for Precedence: field */
|
||||
# define MAXMXHOSTS 20 /* max # of MX records */
|
||||
# define MAXMXHOSTS 100 /* max # of MX records for one host */
|
||||
# define SMTPLINELIM 990 /* maximum SMTP line length */
|
||||
# define MAXKEY 128 /* maximum size of a database key */
|
||||
# define MEMCHUNKSIZE 1024 /* chunk size for memory allocation */
|
||||
|
@ -183,9 +183,6 @@ struct rusage; /* forward declaration to get gcc to shut up in wait.h */
|
|||
# define HASGETUSERSHELL 0 /* getusershell(3) causes core dumps */
|
||||
# endif
|
||||
# define syslog hard_syslog
|
||||
# ifdef __STDC__
|
||||
extern void hard_syslog(int, char *, ...);
|
||||
# endif
|
||||
|
||||
# ifdef V4FS
|
||||
/* HP-UX 10.x */
|
||||
|
@ -205,11 +202,24 @@ extern void hard_syslog(int, char *, ...);
|
|||
# ifndef IDENTPROTO
|
||||
# define IDENTPROTO 0 /* TCP/IP implementation is broken */
|
||||
# endif
|
||||
# ifdef __STDC__
|
||||
extern void hard_syslog(int, char *, ...);
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
** IBM AIX 4.x
|
||||
*/
|
||||
|
||||
#ifdef _AIX4
|
||||
# define _AIX3 1 /* pull in AIX3 stuff */
|
||||
# define HASSETREUID 1 /* setreuid(2) works */
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
** IBM AIX 3.x -- actually tested for 3.2.3
|
||||
*/
|
||||
|
@ -222,15 +232,58 @@ extern void hard_syslog(int, char *, ...);
|
|||
# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
|
||||
# define HASFCHMOD 1 /* has fchmod(2) syscall */
|
||||
# define IP_SRCROUTE 0 /* Something is broken with getsockopt() */
|
||||
# define FORK fork /* no vfork primitive available */
|
||||
# define GIDSET_T gid_t
|
||||
# define SFS_TYPE SFS_STATFS /* use <sys/statfs.h> statfs() impl */
|
||||
# define SPT_PADCHAR '\0' /* pad process title with nulls */
|
||||
# define LA_TYPE LA_INT
|
||||
# define FSHIFT 16
|
||||
# define LA_AVENRUN "avenrun"
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
** IBM AIX 2.2.1 -- actually tested for osupdate level 2706+1773
|
||||
**
|
||||
** From Mark Whetzel <markw@wg.waii.com>.
|
||||
*/
|
||||
|
||||
#ifdef AIX /* AIX/RT compiler pre-defines this */
|
||||
# include <paths.h>
|
||||
# include <sys/time.h> /* AIX/RT resource.h does NOT include this */
|
||||
# define HASINITGROUPS 1 /* has initgroups(3) call */
|
||||
# define HASUNAME 1 /* use System V uname(2) system call */
|
||||
# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
|
||||
# define HASFCHMOD 0 /* does not have fchmod(2) syscall */
|
||||
# define HASSETREUID 1 /* use setreuid(2) -lbsd system call */
|
||||
# define HASSETVBUF 1 /* use setvbuf(2) system call */
|
||||
# define HASSETRLIMIT 0 /* does not have setrlimit call */
|
||||
# define HASFLOCK 0 /* does not have flock call - use fcntl */
|
||||
# define HASULIMIT 1 /* use ulimit instead of setrlimit call */
|
||||
# define NEEDGETOPT 1 /* Do we need theirs or ours */
|
||||
# define SYS5SETPGRP 1 /* don't have setpgid on AIX/RT */
|
||||
# define IP_SRCROUTE 0 /* Something is broken with getsockopt() */
|
||||
# define BSD4_3 1 /* NOT bsd 4.4 or posix signals */
|
||||
# define GIDSET_T int
|
||||
# define SFS_TYPE SFS_STATFS /* use <sys/statfs.h> statfs() impl */
|
||||
# define SPT_PADCHAR '\0' /* pad process title with nulls */
|
||||
# define LA_TYPE LA_SUBR /* use our ported loadavgd daemon */
|
||||
# define TZ_TYPE TZ_TZNAME /* use tzname[] vector */
|
||||
# define ARBPTR_T int *
|
||||
# define void int
|
||||
typedef int pid_t;
|
||||
/* RTisms for BSD compatibility, specified in the Makefile
|
||||
define BSD 1
|
||||
define BSD_INCLUDES 1
|
||||
define BSD_REMAP_SIGNAL_TO_SIGVEC
|
||||
RTisms needed above */
|
||||
/* make this sendmail in a completely different place */
|
||||
# define _PATH_VENDORCF "/usr/local/newmail/sendmail.cf"
|
||||
# ifndef _PATH_SENDMAILPID
|
||||
# define _PATH_SENDMAILPID "/usr/local/newmail/sendmail.pid"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
** Silicon Graphics IRIX
|
||||
**
|
||||
|
@ -238,13 +291,30 @@ extern void hard_syslog(int, char *, ...);
|
|||
**
|
||||
** Use IRIX64 instead of IRIX for 64-bit IRIX (6.0).
|
||||
** Use IRIX5 instead of IRIX for IRIX 5.x.
|
||||
**
|
||||
** This version tries to be adaptive using _MIPS_SIM:
|
||||
** _MIPS_SIM == _ABIO32 (= 1) Abi: -32 on IRIX 6.2
|
||||
** _MIPS_SIM == _ABIN32 (= 2) Abi: -n32 on IRIX 6.2
|
||||
** _MIPS_SIM == _ABI64 (= 3) Abi: -64 on IRIX 6.2
|
||||
**
|
||||
** _MIPS_SIM is 1 also on IRIX 5.3
|
||||
**
|
||||
** IRIX64 changes from Mark R. Levinson <ml@cvdev.rochester.edu>.
|
||||
** IRIX5 changes from Kari E. Hurtta <Kari.Hurtta@fmi.fi>.
|
||||
** Adaptive changes from Kari E. Hurtta <Kari.Hurtta@fmi.fi>.
|
||||
*/
|
||||
|
||||
#if defined(IRIX64) || defined(IRIX5)
|
||||
# define IRIX
|
||||
#if defined(__sgi)
|
||||
# ifndef IRIX
|
||||
# define IRIX
|
||||
# endif
|
||||
# if _MIPS_SIM > 0 && !defined(IRIX5)
|
||||
# define IRIX5 /* IRIX5 or IRIX6 */
|
||||
# endif
|
||||
# if _MIPS_SIM > 1 && !defined(IRIX6) && !defined(IRIX64)
|
||||
# define IRIX6 /* IRIX6 */
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef IRIX
|
||||
|
@ -254,18 +324,24 @@ extern void hard_syslog(int, char *, ...);
|
|||
# define HASFCHMOD 1 /* has fchmod(2) syscall */
|
||||
# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
|
||||
# define IP_SRCROUTE 1 /* can check IP source routing */
|
||||
# define FORK fork /* no vfork primitive available */
|
||||
# define setpgid BSDsetpgrp
|
||||
# define GIDSET_T gid_t
|
||||
# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
|
||||
# define SFS_BAVAIL f_bfree /* alternate field name */
|
||||
# define LA_TYPE LA_INT
|
||||
# ifdef IRIX64
|
||||
# define NAMELISTMASK 0x7fffffffffffffff /* mask for nlist() values */
|
||||
# ifdef IRIX6
|
||||
# define LA_TYPE LA_IRIX6 /* figure out at run time */
|
||||
# else
|
||||
# define NAMELISTMASK 0x7fffffff /* mask for nlist() values */
|
||||
# define LA_TYPE LA_INT
|
||||
|
||||
# ifdef IRIX64
|
||||
# define NAMELISTMASK 0x7fffffffffffffff /* mask for nlist() values */
|
||||
# else
|
||||
# define NAMELISTMASK 0x7fffffff /* mask for nlist() values */
|
||||
# endif
|
||||
# endif
|
||||
# if defined(IRIX64) || defined(IRIX5)
|
||||
# if defined(IRIX64) || defined(IRIX5)
|
||||
# include <sys/cdefs.h>
|
||||
# include <paths.h>
|
||||
# define ARGV_T char *const *
|
||||
# define HASSETRLIMIT 1 /* has setrlimit(2) syscall */
|
||||
# define HASGETDTABLESIZE 1 /* has getdtablesize(2) syscall */
|
||||
|
@ -290,10 +366,16 @@ extern void hard_syslog(int, char *, ...);
|
|||
# define HASGETUSERSHELL 1 /* DOES have getusershell(3) call in libc */
|
||||
# define HASFCHMOD 1 /* has fchmod(2) syscall */
|
||||
# define IP_SRCROUTE 1 /* can check IP source routing */
|
||||
# define LA_TYPE LA_INT
|
||||
# ifndef LA_TYPE
|
||||
# define LA_TYPE LA_INT
|
||||
# endif
|
||||
|
||||
# ifdef SOLARIS_2_3
|
||||
# define SOLARIS 203 /* for back compat only -- use -DSOLARIS=203 */
|
||||
# define SOLARIS 20300 /* for back compat only -- use -DSOLARIS=20300 */
|
||||
# endif
|
||||
|
||||
# if defined(NOT_SENDMAIL) && !defined(SOLARIS) && defined(sun) && (defined(__svr4__) || defined(__SVR4))
|
||||
# define SOLARIS 1 /* unknown Solaris version */
|
||||
# endif
|
||||
|
||||
# ifdef SOLARIS
|
||||
|
@ -303,6 +385,7 @@ extern void hard_syslog(int, char *, ...);
|
|||
# endif
|
||||
# include <sys/time.h>
|
||||
# define GIDSET_T gid_t
|
||||
# define USE_SA_SIGACTION 1 /* use sa_sigaction field */
|
||||
# ifndef _PATH_UNIX
|
||||
# define _PATH_UNIX "/dev/ksyms"
|
||||
# endif
|
||||
|
@ -316,6 +399,20 @@ extern void hard_syslog(int, char *, ...);
|
|||
# ifndef SYSLOG_BUFSIZE
|
||||
# define SYSLOG_BUFSIZE 1024 /* allow full size syslog buffer */
|
||||
# endif
|
||||
# if SOLARIS >= 20300 || (SOLARIS < 10000 && SOLARIS >= 203)
|
||||
# define USESETEUID 1 /* seteuid works as of 2.3 */
|
||||
# endif
|
||||
# if SOLARIS >= 20500 || (SOLARIS < 10000 && SOLARIS >= 205)
|
||||
# define HASSNPRINTF 1 /* has snprintf starting in 2.5 */
|
||||
# define HASSETREUID 1 /* setreuid works as of 2.5 */
|
||||
# if SOLARIS == 20500 || SOLARIS == 205
|
||||
# define snprintf __snprintf /* but names it oddly in 2.5 */
|
||||
# define vsnprintf __vsnprintf
|
||||
# endif
|
||||
# endif
|
||||
# ifndef HASGETUSERSHELL
|
||||
# define HASGETUSERSHELL 0 /* getusershell(3) causes core dumps */
|
||||
# endif
|
||||
|
||||
# else
|
||||
/* SunOS 4.0.3 or 4.1.x */
|
||||
|
@ -432,8 +529,6 @@ extern long dgux_inet_addr();
|
|||
|
||||
#ifdef __ksr__
|
||||
# define __osf__ 1 /* get OSF/1 defines below */
|
||||
# define FORK fork /* no vfork primitive available */
|
||||
# define _PATH_VENDOR_CF "/var/adm/sendmail/sendmail.cf"
|
||||
# ifndef TZ_TYPE
|
||||
# define TZ_TYPE TZ_TZNAME /* use tzname[] vector */
|
||||
# endif
|
||||
|
@ -449,12 +544,16 @@ extern long dgux_inet_addr();
|
|||
|
||||
#ifdef __PARAGON__
|
||||
# define __osf__ 1 /* get OSF/1 defines below */
|
||||
# define _PATH_VENDOR_CF "/var/adm/sendmail/sendmail.cf"
|
||||
# ifndef TZ_TYPE
|
||||
# define TZ_TYPE TZ_TZNAME /* use tzname[] vector */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
** OSF/1 (tested on Alpha)
|
||||
** OSF/1 (tested on Alpha) -- now known as Digital UNIX.
|
||||
**
|
||||
** Tested for 3.2 and 4.0.
|
||||
*/
|
||||
|
||||
#ifdef __osf__
|
||||
|
@ -468,6 +567,7 @@ extern long dgux_inet_addr();
|
|||
# endif
|
||||
# define LA_TYPE LA_INT
|
||||
# define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
|
||||
# define _PATH_VENDOR_CF "/var/adm/sendmail/sendmail.cf"
|
||||
# ifndef _PATH_SENDMAILPID
|
||||
# define _PATH_SENDMAILPID "/var/run/sendmail.pid"
|
||||
# endif
|
||||
|
@ -487,6 +587,7 @@ extern long dgux_inet_addr();
|
|||
# define NEEDGETOPT 1 /* need a replacement for getopt(3) */
|
||||
# define WAITUNION 1 /* use "union wait" as wait argument type */
|
||||
# define UID_T int /* compiler gripes on uid_t */
|
||||
# define GID_T int /* ditto for gid_t */
|
||||
# define sleep sleepX
|
||||
# define setpgid setpgrp
|
||||
# ifndef LA_TYPE
|
||||
|
@ -512,6 +613,7 @@ typedef int pid_t;
|
|||
*/
|
||||
|
||||
#if defined(BSD4_4) && !defined(__bsdi__)
|
||||
# include <paths.h>
|
||||
# define HASUNSETENV 1 /* has unsetenv(3) call */
|
||||
# define USESETEUID 1 /* has useable seteuid(2) call */
|
||||
# define HASFCHMOD 1 /* has fchmod(2) syscall */
|
||||
|
@ -529,11 +631,12 @@ typedef int pid_t;
|
|||
|
||||
|
||||
/*
|
||||
** BSD/386 (all versions)
|
||||
** BSD/OS (was BSD/386) (all versions)
|
||||
** From Tony Sanders, BSDI
|
||||
*/
|
||||
|
||||
#ifdef __bsdi__
|
||||
# include <paths.h>
|
||||
# define HASUNSETENV 1 /* has the unsetenv(3) call */
|
||||
# define HASSETSID 1 /* has the setsid(2) POSIX syscall */
|
||||
# define USESETEUID 1 /* has useable seteuid(2) call */
|
||||
|
@ -574,6 +677,7 @@ typedef int pid_t;
|
|||
*/
|
||||
|
||||
#if defined(__FreeBSD__) || defined(__NetBSD__)
|
||||
# include <paths.h>
|
||||
# define HASUNSETENV 1 /* has unsetenv(3) call */
|
||||
# define HASSETSID 1 /* has the setsid(2) POSIX syscall */
|
||||
# define USESETEUID 1 /* has useable seteuid(2) call */
|
||||
|
@ -592,11 +696,25 @@ typedef int pid_t;
|
|||
# if defined(__NetBSD__) && (NetBSD > 199307 || NetBSD0_9 > 1)
|
||||
# undef SPT_TYPE
|
||||
# define SPT_TYPE SPT_BUILTIN /* setproctitle is in libc */
|
||||
# define setreuid __setreuid
|
||||
# endif
|
||||
# if defined(__FreeBSD__)
|
||||
# undef SPT_TYPE
|
||||
# if __FreeBSD__ == 2
|
||||
# include <osreldate.h> /* and this works */
|
||||
# if __FreeBSD_version >= 199512 /* 2.2-current right now */
|
||||
# include <libutil.h>
|
||||
# define SPT_TYPE SPT_BUILTIN
|
||||
# endif
|
||||
# endif
|
||||
# ifndef SPT_TYPE
|
||||
# define SPT_TYPE SPT_REUSEARGV
|
||||
# define SPT_PADCHAR '\0' /* pad process title with nulls */
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*
|
||||
** Mach386
|
||||
**
|
||||
|
@ -658,36 +776,63 @@ extern int errno;
|
|||
/*
|
||||
** SCO Unix
|
||||
**
|
||||
** This includes two parts -- the first is for SCO Open Server 3.2v4
|
||||
** (contributed by Philippe Brand <phb@colombo.telesys-innov.fr>).
|
||||
** The second is, I believe, for an older version.
|
||||
** This includes three parts:
|
||||
**
|
||||
** The first is for SCO OpenServer 5.
|
||||
** (Contributed by Keith Reynolds <keithr@sco.COM>).
|
||||
**
|
||||
** SCO OpenServer 5 has a compiler version number macro,
|
||||
** which we can use to figure out what version we're on.
|
||||
** This may have to change in future releases.
|
||||
**
|
||||
** The second is for SCO UNIX 3.2v4.2/Open Desktop 3.0.
|
||||
** (Contributed by Philippe Brand <phb@colombo.telesys-innov.fr>).
|
||||
**
|
||||
** The third is for SCO UNIX 3.2v4.0/Open Desktop 2.0 and earlier.
|
||||
*/
|
||||
|
||||
#if _SCO_DS >= 1
|
||||
# include <paths.h>
|
||||
# define _SCO_unix_4_2
|
||||
# define HASSNPRINTF 1 /* has snprintf() call */
|
||||
# define HASFCHMOD 1 /* has fchmod() call */
|
||||
# define HASSETRLIMIT 1 /* has setrlimit() call */
|
||||
# define RLIMIT_NEEDS_SYS_TIME_H 1
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _SCO_unix_4_2
|
||||
# define _SCO_unix_
|
||||
# define HASSETREUID 1 /* has setreuid(2) call */
|
||||
# define _PATH_UNIX "/unix"
|
||||
# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
|
||||
# ifndef _PATH_SENDMAILPID
|
||||
# define _PATH_SENDMAILPID "/etc/sendmail.pid"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef _SCO_unix_
|
||||
# include <sys/stream.h> /* needed for IP_SRCROUTE */
|
||||
# define SYSTEM5 1 /* include all the System V defines */
|
||||
# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
|
||||
# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
|
||||
# define NOFTRUNCATE 0 /* does not have ftruncate(3) call */
|
||||
# define NEEDFSYNC 1 /* needs the fsync(2) call stub */
|
||||
# define FORK fork
|
||||
# define MAXPATHLEN PATHSIZE
|
||||
# define LA_TYPE LA_SHORT
|
||||
# define SFS_TYPE SFS_4ARGS /* use <sys/statfs.h> 4-arg impl */
|
||||
# define SFS_BAVAIL f_bfree /* alternate field name */
|
||||
# define SPT_TYPE SPT_SCO /* write kernel u. area */
|
||||
# define TZ_TYPE TZ_TM_NAME /* use tm->tm_name */
|
||||
# define NETUNIX 0 /* no unix domain socket support */
|
||||
# define _PATH_UNIX "/unix"
|
||||
# define _PATH_VENDOR_CF "/usr/lib/sendmail.cf"
|
||||
# ifndef _PATH_SENDMAILPID
|
||||
# define _PATH_SENDMAILPID "/etc/sendmail.pid"
|
||||
# endif
|
||||
|
||||
/* stuff fixed in later releases */
|
||||
# ifndef _SCO_unix_4_2
|
||||
# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
|
||||
# endif
|
||||
|
||||
# ifndef _SCO_DS
|
||||
# define NOFTRUNCATE 0 /* does not have ftruncate(3) call */
|
||||
# define NEEDFSYNC 1 /* needs the fsync(2) call stub */
|
||||
# define NETUNIX 0 /* no unix domain socket support */
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -707,7 +852,6 @@ extern int errno;
|
|||
# define HASSETREUID 1 /* has setreuid(2) call */
|
||||
# define NEEDFSYNC 1 /* needs the fsync(2) call stub */
|
||||
# define NETUNIX 0 /* no unix domain socket support */
|
||||
# define FORK fork
|
||||
# define MAXPATHLEN 1024
|
||||
# define LA_TYPE LA_SHORT
|
||||
# define SFS_TYPE SFS_STATFS /* use <sys/statfs.h> statfs() impl */
|
||||
|
@ -722,22 +866,24 @@ extern int errno;
|
|||
|
||||
|
||||
/*
|
||||
** Altos System V.
|
||||
** Contributed by Tim Rice <timr@crl.com>.
|
||||
** Altos System V (5.3.1)
|
||||
** Contributed by Tim Rice <tim@trr.metro.net>.
|
||||
*/
|
||||
|
||||
#ifdef ALTOS_SYS_V
|
||||
#ifdef ALTOS_SYSTEM_V
|
||||
# include <sys/stream.h>
|
||||
# include <limits.h>
|
||||
# define SYSTEM5 1 /* include all the System V defines */
|
||||
# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
|
||||
# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
|
||||
# define WAITUNION 1 /* use "union wait" as wait argument type */
|
||||
# define NEEDFSYNC 1 /* no fsync(2) in system library */
|
||||
# define FORK fork
|
||||
# define MAXPATHLEN PATHSIZE
|
||||
# define NEEDSTRSTR 1 /* need emulation of the strstr(3) call */
|
||||
# define MAXPATHLEN PATH_MAX
|
||||
# define LA_TYPE LA_SHORT
|
||||
# define SFS_TYPE SFS_STATFS /* use <sys/statfs.h> statfs() impl */
|
||||
# define SFS_BAVAIL f_bfree /* alternate field name */
|
||||
# define TZ_TYPE TZ_TM_NAME /* use tm->tm_name */
|
||||
# define TZ_TYPE TZ_TZNAME /* use tzname[] vector */
|
||||
# define NETUNIX 0 /* no unix domain socket support */
|
||||
# undef WIFEXITED
|
||||
# undef WEXITSTATUS
|
||||
|
@ -746,6 +892,17 @@ extern int errno;
|
|||
typedef unsigned short uid_t;
|
||||
typedef unsigned short gid_t;
|
||||
typedef short pid_t;
|
||||
|
||||
/* some stuff that should have been in the include files */
|
||||
# include <grp.h>
|
||||
extern char *malloc();
|
||||
extern struct passwd *getpwent();
|
||||
extern struct passwd *getpwnam();
|
||||
extern struct passwd *getpwuid();
|
||||
extern char *getenv();
|
||||
extern struct group *getgrgid();
|
||||
extern struct group *getgrnam();
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -754,13 +911,26 @@ typedef short pid_t;
|
|||
**
|
||||
** "Todd C. Miller" <millert@mroe.cs.colorado.edu> claims this
|
||||
** works on 9.1 as well.
|
||||
**
|
||||
** ConvexOS 11.5 and later, should work on 11.0 as defined.
|
||||
** For pre-ConvexOOS 11.0, define NEEDGETOPT, undef IDENTPROTO
|
||||
**
|
||||
** Eric Schnoebelen (eric@cirr.com) For CONVEX Computer Corp.
|
||||
** (now the CONVEX Technologies Center of Hewlett Packard)
|
||||
*/
|
||||
|
||||
#ifdef _CONVEX_SOURCE
|
||||
# define BSD 1 /* include all the BSD defines */
|
||||
# define HASGETDTABLESIZE 1 /* has getdtablesize(2) */
|
||||
# define HASINITGROUPS 1 /* has initgroups(3) */
|
||||
# define HASUNAME 1 /* use System V uname(2) system call */
|
||||
# define HASSETSID 1 /* has POSIX setsid(2) call */
|
||||
# define NEEDGETOPT 1 /* need replacement for getopt(3) */
|
||||
# define HASUNSETENV 1 /* has unsetenv(3) */
|
||||
# define HASFLOCK 1 /* has flock(2) */
|
||||
# define HASSETRLIMIT 1 /* has setrlimit(2) */
|
||||
# define HASSETREUID 1 /* has setreuid(2) */
|
||||
# define BROKEN_RES_SEARCH 1 /* res_search(unknown) returns h_error=0 */
|
||||
# define NEEDPUTENV 1 /* needs putenv (written in terms of setenv) */
|
||||
# define NEEDGETOPT 0 /* need replacement for getopt(3) */
|
||||
# define IP_SRCROUTE 0 /* Something is broken with getsockopt() */
|
||||
# define LA_TYPE LA_FLOAT
|
||||
# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() implementation */
|
||||
|
@ -773,8 +943,23 @@ typedef short pid_t;
|
|||
# define S_IFCHR _S_IFCHR
|
||||
# define S_IFBLK _S_IFBLK
|
||||
# endif
|
||||
# ifndef TZ_TYPE
|
||||
# define TZ_TYPE TZ_TIMEZONE
|
||||
# endif
|
||||
# ifndef IDENTPROTO
|
||||
# define IDENTPROTO 0 /* TCP/IP implementation is broken */
|
||||
# define IDENTPROTO 1
|
||||
# endif
|
||||
# ifndef SHARE_V1
|
||||
# define SHARE_V1 1 /* version 1 of the fair share scheduler */
|
||||
# endif
|
||||
# if !defined(__GNUC__ )
|
||||
# define UID_T int /* GNUC gets it right, ConvexC botches */
|
||||
# define GID_T int /* GNUC gets it right, ConvexC botches */
|
||||
# endif
|
||||
# if SECUREWARE
|
||||
# define FORK fork /* SecureWare wants the real fork! */
|
||||
# else
|
||||
# define FORK vfork /* the rest of the OS versions don't care */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
@ -825,9 +1010,14 @@ extern void *malloc();
|
|||
** Florian La Roche <rzsfl@rz.uni-sb.de>
|
||||
** Karl London <karl@borg.demon.co.uk>
|
||||
**
|
||||
** Last compiled against: [09/06/95 @ 10:20:58 AM (Wednesday)]
|
||||
** sendmail 8.7-b14 named 4.9.3-beta17 db-1.85
|
||||
** gcc 2.7.0 libc-5.2.7 linux 1.2.13
|
||||
** Last compiled against: [06/10/96 @ 09:21:40 PM (Monday)]
|
||||
** sendmail 8.8-a4 named bind-4.9.4-T4B db-1.85
|
||||
** gcc 2.7.2 libc-5.3.12 linux 2.0.0
|
||||
**
|
||||
** NOTE: Override HASFLOCK as you will but, as of 1.99.6, mixed-style
|
||||
** file locking is no longer allowed. In particular, make sure
|
||||
** your DBM library and sendmail are both using either flock(2)
|
||||
** *or* fcntl(2) file locking, but not both.
|
||||
*/
|
||||
|
||||
#ifdef __linux__
|
||||
|
@ -843,7 +1033,12 @@ extern void *malloc();
|
|||
# define HASGETUSERSHELL 0 /* getusershell(3) broken in Slackware 2.0 */
|
||||
# define IP_SRCROUTE 0 /* linux <= 1.2.8 doesn't support IP_OPTIONS */
|
||||
# ifndef HASFLOCK
|
||||
# define HASFLOCK 0 /* flock(2) is broken after 0.99.13 */
|
||||
# include <linux/version.h>
|
||||
# if LINUX_VERSION_CODE < 66399
|
||||
# define HASFLOCK 0 /* flock(2) is broken after 0.99.13 */
|
||||
# else
|
||||
# define HASFLOCK 1 /* flock(2) fixed after 1.3.95 */
|
||||
# endif
|
||||
# endif
|
||||
# ifndef LA_TYPE
|
||||
# define LA_TYPE LA_PROCSTR
|
||||
|
@ -893,7 +1088,6 @@ extern void *malloc();
|
|||
# ifndef IDENTPROTO
|
||||
# define IDENTPROTO 0 /* TCP/IP implementation is broken */
|
||||
# endif
|
||||
# define FORK fork
|
||||
# ifndef LA_TYPE
|
||||
# define LA_TYPE LA_INT
|
||||
# define FSHIFT 16
|
||||
|
@ -923,7 +1117,6 @@ extern void *malloc();
|
|||
# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
|
||||
# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */
|
||||
# define SYS5SETPGRP 1 /* use System V setpgrp(2) syscall */
|
||||
# define FORK fork /* no vfork(2) primitive available */
|
||||
# define SFS_TYPE SFS_4ARGS /* four argument statfs() call */
|
||||
# define MAXPATHLEN PATH_MAX
|
||||
extern struct passwd *getpwent(), *getpwnam(), *getpwuid();
|
||||
|
@ -996,9 +1189,12 @@ typedef int pid_t;
|
|||
** For DYNIX/ptx v1.x, undefine HASSETREUID.
|
||||
**
|
||||
** From Tim Wright <timw@sequent.com>.
|
||||
** Update from Jack Woolley <jwoolley@sctcorp.com>, 26 Dec 1995,
|
||||
** for DYNIX/ptx 4.0.2.
|
||||
*/
|
||||
|
||||
#ifdef _SEQUENT_
|
||||
# include <sys/stream.h>
|
||||
# define SYSTEM5 1 /* include all the System V defines */
|
||||
# define HASSETSID 1 /* has POSIX setsid(2) call */
|
||||
# define HASINITGROUPS 1 /* has initgroups(3) call */
|
||||
|
@ -1062,6 +1258,7 @@ typedef int pid_t;
|
|||
# ifndef IDENTPROTO
|
||||
# define IDENTPROTO 0 /* TCP/IP implementation is broken */
|
||||
# endif
|
||||
# define RLIMIT_NEEDS_SYS_TIME_H 1
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -1124,18 +1321,30 @@ typedef int pid_t;
|
|||
|
||||
|
||||
/*
|
||||
** NCR 3000 Series (SysVr4)
|
||||
** NCR MP-RAS 2.x (SysVr4) with Wollongong TCP/IP
|
||||
**
|
||||
** From Kevin Darcy <kevin@tech.mis.cfc.com>.
|
||||
*/
|
||||
|
||||
#ifdef NCR3000
|
||||
#ifdef NCR_MP_RAS2
|
||||
# include <sys/sockio.h>
|
||||
# define __svr4__
|
||||
# define IP_SRCROUTE 0 /* Something is broken with getsockopt() */
|
||||
# undef BSD
|
||||
# define LA_AVENRUN "avenrun"
|
||||
# define SYSLOG_BUFSIZE 1024
|
||||
# define SPT_TYPE SPT_NONE
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
** NCR MP-RAS 3.x (SysVr4) with STREAMware TCP/IP
|
||||
**
|
||||
** From Tom Moore <Tom.Moore@DaytonOH.NCR.COM>
|
||||
*/
|
||||
|
||||
#ifdef NCR_MP_RAS3
|
||||
# define __svr4__
|
||||
# define SYSLOG_BUFSIZE 1024
|
||||
# define SPT_TYPE SPT_NONE
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -1358,20 +1567,75 @@ extern int errno;
|
|||
** Fujitsu/ICL UXP/DS (For the DS/90 Series)
|
||||
**
|
||||
** From Diego R. Lopez <drlopez@cica.es>.
|
||||
** Additional changes from Fumio Moriya and Toshiaki Nomura of the
|
||||
** Fujitsu Fresoftware gruop <dsfrsoft@oai6.yk.fujitsu.co.jp>.
|
||||
*/
|
||||
|
||||
#ifdef UXPDS
|
||||
#ifdef __uxp__
|
||||
# include <arpa/nameser.h>
|
||||
# include <sys/sysmacros.h>
|
||||
# include <sys/mkdev.h>
|
||||
# define __svr4__
|
||||
# define HASGETUSERSHELL 1
|
||||
# define HASGETUSERSHELL 0
|
||||
# define HASFLOCK 0
|
||||
# if UXPDS == 10
|
||||
# define HASSNPRINTF 0 /* no snprintf(3) or vsnprintf(3) */
|
||||
# else
|
||||
# define HASSNPRINTF 1 /* has snprintf(3) and vsnprintf(3) */
|
||||
# endif
|
||||
# define _PATH_UNIX "/stand/unix"
|
||||
# define _PATH_VENDOR_CF "/etc/mail/sendmail.cf"
|
||||
# define _PATH_VENDOR_CF "/usr/ucblib/sendmail.cf"
|
||||
# ifndef _PATH_SENDMAILPID
|
||||
# define _PATH_SENDMAILPID "/etc/mail/sendmail.pid"
|
||||
# define _PATH_SENDMAILPID "/usr/ucblib/sendmail.pid"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Pyramid DC/OSx
|
||||
**
|
||||
** From Earle Ake <akee@wpdis01.wpafb.af.mil>.
|
||||
*/
|
||||
|
||||
#ifdef DCOSx
|
||||
# define GIDSET_T gid_t
|
||||
# ifndef IDENTPROTO
|
||||
# define IDENTPROTO 0 /* TCP/IP implementation is broken */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Concurrent Computer Corporation Maxion
|
||||
**
|
||||
** From Donald R. Laster Jr. <laster@access.digex.net>.
|
||||
*/
|
||||
|
||||
#ifdef __MAXION__
|
||||
|
||||
# include <sys/stream.h>
|
||||
# define __svr4__ 1 /* SVR4.2MP */
|
||||
# define HASSETREUID 1 /* have setreuid(2) */
|
||||
# define HASLSTAT 1 /* have lstat(2) */
|
||||
# define HASSETRLIMIT 1 /* have setrlimit(2) */
|
||||
# define HASGETDTABLESIZE 1 /* have getdtablesize(2) */
|
||||
# define HASSNPRINTF 1 /* have snprintf(3) */
|
||||
# define HASGETUSERSHELL 1 /* have getusershell(3) */
|
||||
# define NOFTRUNCATE 1 /* do not have ftruncate(2) */
|
||||
# define SLEEP_T unsigned
|
||||
# define SFS_TYPE SFS_STATVFS
|
||||
# define SFS_BAVAIL f_bavail
|
||||
# ifndef SYSLOG_BUFSIZE
|
||||
# define SYSLOG_BUFSIZE 256 /* Use 256 bytes */
|
||||
# endif
|
||||
|
||||
# undef WUNTRACED
|
||||
# undef WIFEXITED
|
||||
# undef WIFSIGNALED
|
||||
# undef WIFSTOPPED
|
||||
# undef WEXITSTATUS
|
||||
# undef WTERMSIG
|
||||
# undef WSTOPSIG
|
||||
|
||||
#endif
|
||||
|
||||
/**********************************************************************
|
||||
** End of Per-Operating System defines
|
||||
|
@ -1404,13 +1668,16 @@ extern int errno;
|
|||
# define SYSTEM5 1
|
||||
# define USESETEUID 1 /* has useable seteuid(2) call */
|
||||
# define HASINITGROUPS 1 /* has initgroups(3) call */
|
||||
# define BSD_COMP 1 /* get BSD ioctl calls */
|
||||
# define BSD_COMP 1 /* get BSD ioctl calls */
|
||||
# ifndef HASSETRLIMIT
|
||||
# define HASSETRLIMIT 1 /* has setrlimit(2) call */
|
||||
# endif
|
||||
# ifndef HASGETUSERSHELL
|
||||
# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */
|
||||
# endif
|
||||
# ifndef HASFCHMOD
|
||||
# define HASFCHMOD 1 /* most (all?) SVr4s seem to have fchmod(2) */
|
||||
# endif
|
||||
|
||||
# ifndef _PATH_UNIX
|
||||
# define _PATH_UNIX "/unix"
|
||||
|
@ -1428,6 +1695,7 @@ extern int errno;
|
|||
# define SFS_TYPE SFS_STATVFS
|
||||
# endif
|
||||
|
||||
/* SVr4 uses different routines for setjmp/longjmp with signal support */
|
||||
# define jmp_buf sigjmp_buf
|
||||
# define setjmp(env) sigsetjmp(env, 1)
|
||||
# define longjmp(env, val) siglongjmp(env, val)
|
||||
|
@ -1485,7 +1753,7 @@ extern int errno;
|
|||
# undef bcopy /* despite SystemV claim, uses BSD bcopy */
|
||||
#endif
|
||||
|
||||
#ifdef ALTOS_SYS_V
|
||||
#ifdef ALTOS_SYSTEM_V
|
||||
# undef bcopy /* despite SystemV claim, uses BSD bcopy */
|
||||
# undef bzero /* despite SystemV claim, uses BSD bzero */
|
||||
# undef bcmp /* despite SystemV claim, uses BSD bcmp */
|
||||
|
@ -1547,6 +1815,10 @@ extern int errno;
|
|||
# define OLD_NEWDB 0 /* assume newer version of newdb */
|
||||
#endif
|
||||
|
||||
#ifndef SECUREWARE
|
||||
# define SECUREWARE 0 /* assume no SecureWare C2 auditing hooks */
|
||||
#endif
|
||||
|
||||
/* heuristic setting of HASSETSIGMASK; can override above */
|
||||
#ifndef HASSIGSETMASK
|
||||
# ifdef SIGVTALRM
|
||||
|
@ -1570,6 +1842,10 @@ extern int errno;
|
|||
# define UID_T uid_t
|
||||
#endif
|
||||
|
||||
#ifndef GID_T
|
||||
# define GID_T gid_t
|
||||
#endif
|
||||
|
||||
#ifndef SIZE_T
|
||||
# define SIZE_T size_t
|
||||
#endif
|
||||
|
@ -1587,6 +1863,9 @@ extern int errno;
|
|||
#ifndef S_ISREG
|
||||
# define S_ISREG(foo) ((foo & S_IFMT) == S_IFREG)
|
||||
#endif
|
||||
#ifndef S_ISDIR
|
||||
# define S_ISDIR(foo) ((foo & S_IFMT) == S_IFDIR)
|
||||
#endif
|
||||
#if !defined(S_ISLNK) && defined(S_IFLNK)
|
||||
# define S_ISLNK(foo) ((foo & S_IFMT) == S_IFLNK)
|
||||
#endif
|
||||
|
@ -1715,7 +1994,7 @@ struct utsname
|
|||
};
|
||||
#endif /* HASUNAME */
|
||||
|
||||
#if !defined(MAXHOSTNAMELEN) && !defined(_SCO_unix_) && !defined(NonStop_UX_BXX) && !defined(ALTOS_SYS_V)
|
||||
#if !defined(MAXHOSTNAMELEN) && !defined(_SCO_unix_) && !defined(NonStop_UX_BXX) && !defined(ALTOS_SYSTEM_V)
|
||||
# define MAXHOSTNAMELEN 256
|
||||
#endif
|
||||
|
||||
|
@ -1795,9 +2074,10 @@ typedef void (*sigfunc_t) __P((int));
|
|||
*/
|
||||
|
||||
# define PSBUFSIZE (MAXNAME + MAXATOM) /* size of prescan buffer */
|
||||
|
||||
/* fork routine -- set above using #ifdef _osname_ or in Makefile */
|
||||
# ifndef FORK
|
||||
# define FORK vfork /* function to call to fork mailer */
|
||||
# define FORK fork /* function to call to fork mailer */
|
||||
# endif
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1983, 1995 Eric P. Allman
|
||||
* Copyright (c) 1983, 1995, 1996 Eric P. Allman
|
||||
* Copyright (c) 1988, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
|
@ -33,7 +33,7 @@
|
|||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)convtime.c 8.4.1.1 (Berkeley) 9/16/96";
|
||||
static char sccsid[] = "@(#)convtime.c 8.7 (Berkeley) 9/15/96";
|
||||
#endif /* not lint */
|
||||
|
||||
# include "sendmail.h"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1983, 1995 Eric P. Allman
|
||||
* Copyright (c) 1983, 1995, 1996 Eric P. Allman
|
||||
* Copyright (c) 1988, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
|
@ -37,9 +37,9 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef DAEMON
|
||||
static char sccsid[] = "@(#)daemon.c 8.119.1.2 (Berkeley) 9/16/96 (with daemon mode)";
|
||||
static char sccsid[] = "@(#)daemon.c 8.145 (Berkeley) 10/12/96 (with daemon mode)";
|
||||
#else
|
||||
static char sccsid[] = "@(#)daemon.c 8.119.1.2 (Berkeley) 9/16/96 (without daemon mode)";
|
||||
static char sccsid[] = "@(#)daemon.c 8.145 (Berkeley) 10/12/96 (without daemon mode)";
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -70,7 +70,7 @@ static char sccsid[] = "@(#)daemon.c 8.119.1.2 (Berkeley) 9/16/96 (without daemo
|
|||
** thing yourself, I recommend chucking the entire file
|
||||
** and starting from scratch. Basic semantics are:
|
||||
**
|
||||
** getrequests()
|
||||
** getrequests(e)
|
||||
** Opens a port and initiates a connection.
|
||||
** Returns in a child. Must set InChannel and
|
||||
** OutChannel appropriately.
|
||||
|
@ -80,7 +80,7 @@ static char sccsid[] = "@(#)daemon.c 8.119.1.2 (Berkeley) 9/16/96 (without daemo
|
|||
** etc., to avoid having extra file descriptors during
|
||||
** the queue run and to avoid confusing the network
|
||||
** code (if it cares).
|
||||
** makeconnection(host, port, outfile, infile, usesecureport)
|
||||
** makeconnection(host, port, outfile, infile, e)
|
||||
** Make a connection to the named host on the given
|
||||
** port. Set *outfile and *infile to the files
|
||||
** appropriate for communication. Returns zero on
|
||||
|
@ -93,10 +93,12 @@ static char sccsid[] = "@(#)daemon.c 8.119.1.2 (Berkeley) 9/16/96 (without daemo
|
|||
** GETREQUESTS -- open mail IPC port and get requests.
|
||||
**
|
||||
** Parameters:
|
||||
** none.
|
||||
** e -- the current envelope.
|
||||
**
|
||||
** Returns:
|
||||
** none.
|
||||
** TRUE -- if a "null server" should be used -- that is, one
|
||||
** that rejects all commands.
|
||||
** FALSE -- to use a normal server.
|
||||
**
|
||||
** Side Effects:
|
||||
** Waits until some interesting activity occurs. When
|
||||
|
@ -113,8 +115,9 @@ int ListenQueueSize = 10; /* size of listen queue */
|
|||
int TcpRcvBufferSize = 0; /* size of TCP receive buffer */
|
||||
int TcpSndBufferSize = 0; /* size of TCP send buffer */
|
||||
|
||||
void
|
||||
getrequests()
|
||||
bool
|
||||
getrequests(e)
|
||||
ENVELOPE *e;
|
||||
{
|
||||
int t;
|
||||
bool refusingconnections = TRUE;
|
||||
|
@ -124,6 +127,7 @@ getrequests()
|
|||
bool j_has_dot;
|
||||
#endif
|
||||
extern void reapchild();
|
||||
extern int opendaemonsocket __P((bool));
|
||||
|
||||
/*
|
||||
** Set up the address for the mailer.
|
||||
|
@ -166,7 +170,7 @@ getrequests()
|
|||
extern char *CommandLineArgs;
|
||||
|
||||
/* write the process id on line 1 */
|
||||
fprintf(pidf, "%d\n", getpid());
|
||||
fprintf(pidf, "%ld\n", (long) getpid());
|
||||
|
||||
/* line 2 contains all command line flags */
|
||||
fprintf(pidf, "%s\n", CommandLineArgs);
|
||||
|
@ -179,7 +183,7 @@ getrequests()
|
|||
{
|
||||
char jbuf[MAXHOSTNAMELEN];
|
||||
|
||||
expand("\201j", jbuf, sizeof jbuf, CurEnv);
|
||||
expand("\201j", jbuf, sizeof jbuf, e);
|
||||
j_has_dot = strchr(jbuf, '.') != NULL;
|
||||
}
|
||||
#endif
|
||||
|
@ -195,8 +199,7 @@ getrequests()
|
|||
extern int getla();
|
||||
|
||||
/* see if we are rejecting connections */
|
||||
CurrentLA = getla();
|
||||
if (refuseconnections())
|
||||
if (refuseconnections(ntohs(DaemonAddr.sin.sin_port)))
|
||||
{
|
||||
if (DaemonSocket >= 0)
|
||||
{
|
||||
|
@ -220,8 +223,9 @@ getrequests()
|
|||
/* check for disaster */
|
||||
{
|
||||
char jbuf[MAXHOSTNAMELEN];
|
||||
extern void dumpstate __P((char *));
|
||||
|
||||
expand("\201j", jbuf, sizeof jbuf, CurEnv);
|
||||
expand("\201j", jbuf, sizeof jbuf, e);
|
||||
if (!wordinclass(jbuf, 'w'))
|
||||
{
|
||||
dumpstate("daemon lost $j");
|
||||
|
@ -238,7 +242,8 @@ getrequests()
|
|||
#endif
|
||||
|
||||
/* wait for a connection */
|
||||
setproctitle("accepting connections");
|
||||
setproctitle("accepting connections on port %d",
|
||||
ntohs(DaemonAddr.sin.sin_port));
|
||||
do
|
||||
{
|
||||
errno = 0;
|
||||
|
@ -277,9 +282,9 @@ getrequests()
|
|||
if (pid == 0)
|
||||
{
|
||||
char *p;
|
||||
extern char *hostnamebyanyaddr();
|
||||
extern void intsig();
|
||||
FILE *inchannel, *outchannel;
|
||||
bool nullconn;
|
||||
|
||||
/*
|
||||
** CHILD -- return to caller.
|
||||
|
@ -296,7 +301,7 @@ getrequests()
|
|||
|
||||
/* determine host name */
|
||||
p = hostnamebyanyaddr(&RealHostAddr);
|
||||
if (strlen(p) > MAXNAME)
|
||||
if (strlen(p) > (SIZE_T) MAXNAME)
|
||||
p[MAXNAME] = '\0';
|
||||
RealHostName = newstr(p);
|
||||
setproctitle("startup with %s", p);
|
||||
|
@ -313,7 +318,13 @@ getrequests()
|
|||
OutChannel = outchannel;
|
||||
DisConnected = FALSE;
|
||||
|
||||
/* should we check for illegal connection here? XXX */
|
||||
/* validate the connection */
|
||||
HoldErrs = TRUE;
|
||||
nullconn = !validate_connection(&RealHostAddr, RealHostName, e);
|
||||
HoldErrs = FALSE;
|
||||
if (nullconn)
|
||||
break;
|
||||
|
||||
#ifdef XLA
|
||||
if (!xla_host_ok(RealHostName))
|
||||
{
|
||||
|
@ -323,16 +334,19 @@ getrequests()
|
|||
#endif
|
||||
|
||||
if (tTd(15, 2))
|
||||
printf("getreq: returning\n");
|
||||
return;
|
||||
printf("getreq: returning (normal server)\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
CurChildren++;
|
||||
/* parent -- keep track of children */
|
||||
proc_list_add(pid);
|
||||
|
||||
/* close the port so that others will hang (for a while) */
|
||||
(void) close(t);
|
||||
}
|
||||
/*NOTREACHED*/
|
||||
if (tTd(15, 2))
|
||||
printf("getreq: returning (null server)\n");
|
||||
return TRUE;
|
||||
}
|
||||
/*
|
||||
** OPENDAEMONSOCKET -- open the SMTP socket
|
||||
|
@ -446,6 +460,7 @@ opendaemonsocket(firsttime)
|
|||
} while (ntries++ < MAXOPENTRIES && transienterror(saveerrno));
|
||||
syserr("!opendaemonsocket: server SMTP socket wedged: exiting");
|
||||
finis();
|
||||
return -1; /* avoid compiler warning on IRIX */
|
||||
}
|
||||
/*
|
||||
** CLRDAEMON -- reset the daemon connection
|
||||
|
@ -536,16 +551,16 @@ setdaemonoptions(p)
|
|||
#if NETINET
|
||||
case AF_INET:
|
||||
if (isascii(*v) && isdigit(*v))
|
||||
DaemonAddr.sin.sin_addr.s_addr = htonl(inet_network(v));
|
||||
DaemonAddr.sin.sin_addr.s_addr = inet_addr(v);
|
||||
else
|
||||
{
|
||||
register struct netent *np;
|
||||
register struct hostent *hp;
|
||||
|
||||
np = getnetbyname(v);
|
||||
if (np == NULL)
|
||||
syserr("554 network \"%s\" unknown", v);
|
||||
hp = sm_gethostbyname(v);
|
||||
if (hp == NULL)
|
||||
syserr("554 host \"%s\" unknown", v);
|
||||
else
|
||||
DaemonAddr.sin.sin_addr.s_addr = np->n_net;
|
||||
bcopy(hp->h_addr, &DaemonAddr.sin.sin_addr, INADDRSZ);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
@ -630,8 +645,7 @@ setdaemonoptions(p)
|
|||
** port -- the port number to connect to.
|
||||
** mci -- a pointer to the mail connection information
|
||||
** structure to be filled in.
|
||||
** usesecureport -- if set, use a low numbered (reserved)
|
||||
** port to provide some rudimentary authentication.
|
||||
** e -- the current envelope.
|
||||
**
|
||||
** Returns:
|
||||
** An exit code telling whether the connection could be
|
||||
|
@ -653,11 +667,11 @@ connecttimeout()
|
|||
SOCKADDR CurHostAddr; /* address of current host */
|
||||
|
||||
int
|
||||
makeconnection(host, port, mci, usesecureport)
|
||||
makeconnection(host, port, mci, e)
|
||||
char *host;
|
||||
u_short port;
|
||||
register MCI *mci;
|
||||
bool usesecureport;
|
||||
ENVELOPE *e;
|
||||
{
|
||||
register int i = 0;
|
||||
register int s;
|
||||
|
@ -691,7 +705,7 @@ makeconnection(host, port, mci, usesecureport)
|
|||
*p = '\0';
|
||||
#if NETINET
|
||||
hid = inet_addr(&host[1]);
|
||||
if (hid == -1)
|
||||
if (hid == INADDR_NONE)
|
||||
#endif
|
||||
{
|
||||
/* try it as a host name (avoid MX lookup) */
|
||||
|
@ -717,8 +731,11 @@ makeconnection(host, port, mci, usesecureport)
|
|||
}
|
||||
if (p == NULL)
|
||||
{
|
||||
extern char MsgBuf[];
|
||||
|
||||
usrerr("553 Invalid numeric domain spec \"%s\"", host);
|
||||
mci->mci_status = "5.1.2";
|
||||
mci->mci_rstatus = newstr(MsgBuf);
|
||||
return (EX_NOHOST);
|
||||
}
|
||||
#if NETINET
|
||||
|
@ -728,22 +745,25 @@ makeconnection(host, port, mci, usesecureport)
|
|||
}
|
||||
else
|
||||
{
|
||||
register char *p = &host[strlen(host) - 1];
|
||||
|
||||
hp = sm_gethostbyname(host);
|
||||
if (hp == NULL && *p == '.')
|
||||
/* contortion to get around SGI cc complaints */
|
||||
{
|
||||
#if NAMED_BIND
|
||||
int oldopts = _res.options;
|
||||
register char *p = &host[strlen(host) - 1];
|
||||
|
||||
_res.options &= ~(RES_DEFNAMES|RES_DNSRCH);
|
||||
#endif
|
||||
*p = '\0';
|
||||
hp = sm_gethostbyname(host);
|
||||
*p = '.';
|
||||
if (hp == NULL && *p == '.')
|
||||
{
|
||||
#if NAMED_BIND
|
||||
_res.options = oldopts;
|
||||
int oldopts = _res.options;
|
||||
|
||||
_res.options &= ~(RES_DEFNAMES|RES_DNSRCH);
|
||||
#endif
|
||||
*p = '\0';
|
||||
hp = sm_gethostbyname(host);
|
||||
*p = '.';
|
||||
#if NAMED_BIND
|
||||
_res.options = oldopts;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
gothostent:
|
||||
if (hp == NULL)
|
||||
|
@ -754,6 +774,7 @@ makeconnection(host, port, mci, usesecureport)
|
|||
(errno == ECONNREFUSED && UseNameServer))
|
||||
{
|
||||
mci->mci_status = "4.4.3";
|
||||
mci->mci_rstatus = NULL;
|
||||
return (EX_TEMPFAIL);
|
||||
}
|
||||
#endif
|
||||
|
@ -841,7 +862,7 @@ makeconnection(host, port, mci, usesecureport)
|
|||
/* save for logging */
|
||||
CurHostAddr = addr;
|
||||
|
||||
if (usesecureport)
|
||||
if (bitnset(M_SECURE_PORT, mci->mci_mailer->m_flags))
|
||||
{
|
||||
int rport = IPPORT_RESERVED - 1;
|
||||
|
||||
|
@ -878,8 +899,8 @@ makeconnection(host, port, mci, usesecureport)
|
|||
(void) setsockopt(s, SOL_SOCKET, SO_DEBUG,
|
||||
(char *)&on, sizeof on);
|
||||
}
|
||||
if (CurEnv->e_xfp != NULL)
|
||||
(void) fflush(CurEnv->e_xfp); /* for debugging */
|
||||
if (e->e_xfp != NULL)
|
||||
(void) fflush(e->e_xfp); /* for debugging */
|
||||
errno = 0; /* for debugging */
|
||||
|
||||
/*
|
||||
|
@ -889,10 +910,12 @@ makeconnection(host, port, mci, usesecureport)
|
|||
|
||||
if (setjmp(CtxConnectTimeout) == 0)
|
||||
{
|
||||
if (TimeOuts.to_connect == 0)
|
||||
ev = NULL;
|
||||
else
|
||||
if (e->e_ntries <= 0 && TimeOuts.to_iconnect != 0)
|
||||
ev = setevent(TimeOuts.to_iconnect, connecttimeout, 0);
|
||||
else if (TimeOuts.to_connect != 0)
|
||||
ev = setevent(TimeOuts.to_connect, connecttimeout, 0);
|
||||
else
|
||||
ev = NULL;
|
||||
if (connect(s, (struct sockaddr *) &addr, addrlen) >= 0)
|
||||
{
|
||||
if (ev != NULL)
|
||||
|
@ -986,7 +1009,6 @@ myhostname(hostbuf, size)
|
|||
int size;
|
||||
{
|
||||
register struct hostent *hp;
|
||||
extern bool getcanonname();
|
||||
|
||||
if (gethostname(hostbuf, size) < 0)
|
||||
{
|
||||
|
@ -1087,7 +1109,6 @@ getauthinfo(fd)
|
|||
int nleft;
|
||||
char ibuf[MAXNAME + 1];
|
||||
static char hbuf[MAXNAME * 2 + 2];
|
||||
extern char *hostnamebyanyaddr();
|
||||
|
||||
falen = sizeof RealHostAddr;
|
||||
if (isatty(fd) || getpeername(fd, &RealHostAddr.sa, &falen) < 0 ||
|
||||
|
@ -1104,6 +1125,8 @@ getauthinfo(fd)
|
|||
{
|
||||
/* translate that to a host name */
|
||||
RealHostName = newstr(hostnamebyanyaddr(&RealHostAddr));
|
||||
if (strlen(RealHostName) > MAXNAME)
|
||||
RealHostName[MAXNAME - 1] = '\0';
|
||||
}
|
||||
|
||||
if (TimeOuts.to_ident == 0)
|
||||
|
@ -1170,6 +1193,9 @@ getauthinfo(fd)
|
|||
{
|
||||
p += i;
|
||||
nleft -= i;
|
||||
*p = '\0';
|
||||
if (strchr(ibuf, '\n') != NULL)
|
||||
break;
|
||||
}
|
||||
(void) close(s);
|
||||
clrevent(ev);
|
||||
|
@ -1207,14 +1233,6 @@ getauthinfo(fd)
|
|||
}
|
||||
|
||||
/* p now points to the OSTYPE field */
|
||||
while (isascii(*p) && isspace(*p))
|
||||
p++;
|
||||
if (strncasecmp(p, "other", 5) == 0 &&
|
||||
(p[5] == ':' || p[5] == ' ' || p[5] == ',' || p[5] == '\0'))
|
||||
{
|
||||
/* not useful information */
|
||||
goto noident;
|
||||
}
|
||||
p = strchr(p, ':');
|
||||
if (p == NULL)
|
||||
{
|
||||
|
@ -1432,25 +1450,28 @@ host_map_lookup(map, name, av, statp)
|
|||
|
||||
if (*name != '[')
|
||||
{
|
||||
extern bool getcanonname();
|
||||
|
||||
if (tTd(9, 1))
|
||||
printf("host_map_lookup(%s) => ", name);
|
||||
s->s_namecanon.nc_flags |= NCF_VALID; /* will be soon */
|
||||
if (strlen(name) < sizeof hbuf)
|
||||
snprintf(hbuf, sizeof hbuf, "%s", name);
|
||||
if (getcanonname(hbuf, sizeof hbuf - 1, !HasWildcardMX))
|
||||
{
|
||||
if (tTd(9, 1))
|
||||
printf("%s\n", hbuf);
|
||||
cp = map_rewrite(map, hbuf, strlen(hbuf), av);
|
||||
s->s_namecanon.nc_cname = newstr(cp);
|
||||
if (bitset(MF_MATCHONLY, map->map_mflags))
|
||||
{
|
||||
cp = map_rewrite(map, name, strlen(name), av);
|
||||
s->s_namecanon.nc_cname = newstr(hbuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
cp = map_rewrite(map, hbuf, strlen(hbuf), av);
|
||||
s->s_namecanon.nc_cname = newstr(cp);
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
else
|
||||
{
|
||||
register struct hostent *hp;
|
||||
|
||||
s->s_namecanon.nc_errno = errno;
|
||||
#if NAMED_BIND
|
||||
s->s_namecanon.nc_herrno = h_errno;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1986, 1995 Eric P. Allman
|
||||
* Copyright (c) 1986, 1995, 1996 Eric P. Allman
|
||||
* Copyright (c) 1988, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
|
@ -36,9 +36,9 @@
|
|||
|
||||
#ifndef lint
|
||||
#if NAMED_BIND
|
||||
static char sccsid[] = "@(#)domain.c 8.54.1.2 (Berkeley) 9/16/96 (with name server)";
|
||||
static char sccsid[] = "@(#)domain.c 8.63 (Berkeley) 9/15/96 (with name server)";
|
||||
#else
|
||||
static char sccsid[] = "@(#)domain.c 8.54.1.2 (Berkeley) 9/16/96 (without name server)";
|
||||
static char sccsid[] = "@(#)domain.c 8.63 (Berkeley) 9/15/96 (without name server)";
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -46,6 +46,7 @@ static char sccsid[] = "@(#)domain.c 8.54.1.2 (Berkeley) 9/16/96 (without name s
|
|||
|
||||
#include <errno.h>
|
||||
#include <resolv.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
typedef union
|
||||
{
|
||||
|
@ -53,14 +54,18 @@ typedef union
|
|||
u_char qb2[PACKETSZ];
|
||||
} querybuf;
|
||||
|
||||
static char MXHostBuf[MAXMXHOSTS*PACKETSZ];
|
||||
#ifndef MXHOSTBUFSIZE
|
||||
# define MXHOSTBUFSIZE (128 * MAXMXHOSTS)
|
||||
#endif
|
||||
|
||||
static char MXHostBuf[MXHOSTBUFSIZE];
|
||||
|
||||
#ifndef MAXDNSRCH
|
||||
#define MAXDNSRCH 6 /* number of possible domains to search */
|
||||
# define MAXDNSRCH 6 /* number of possible domains to search */
|
||||
#endif
|
||||
|
||||
#ifndef MAX
|
||||
#define MAX(a, b) ((a) > (b) ? (a) : (b))
|
||||
# define MAX(a, b) ((a) > (b) ? (a) : (b))
|
||||
#endif
|
||||
|
||||
#ifndef NO_DATA
|
||||
|
@ -114,32 +119,21 @@ getmxrr(host, mxhosts, droplocalhost, rcode)
|
|||
u_short pref, type;
|
||||
u_short localpref = 256;
|
||||
char *fallbackMX = FallBackMX;
|
||||
static bool firsttime = TRUE;
|
||||
bool trycanon = FALSE;
|
||||
int (*resfunc)();
|
||||
extern int res_query(), res_search();
|
||||
u_short prefer[MAXMXHOSTS];
|
||||
int weight[MAXMXHOSTS];
|
||||
extern bool getcanonname();
|
||||
extern int mxrand __P((char *));
|
||||
|
||||
if (tTd(8, 2))
|
||||
printf("getmxrr(%s, droplocalhost=%d)\n", host, droplocalhost);
|
||||
|
||||
if (fallbackMX != NULL)
|
||||
if (fallbackMX != NULL && droplocalhost &&
|
||||
wordinclass(fallbackMX, 'w'))
|
||||
{
|
||||
if (firsttime &&
|
||||
res_query(FallBackMX, C_IN, T_A,
|
||||
(u_char *) &answer, sizeof answer) < 0)
|
||||
{
|
||||
/* this entry is bogus */
|
||||
fallbackMX = FallBackMX = NULL;
|
||||
}
|
||||
else if (droplocalhost && wordinclass(fallbackMX, 'w'))
|
||||
{
|
||||
/* don't use fallback for this pass */
|
||||
fallbackMX = NULL;
|
||||
}
|
||||
firsttime = FALSE;
|
||||
/* don't use fallback for this pass */
|
||||
fallbackMX = NULL;
|
||||
}
|
||||
|
||||
*rcode = EX_OK;
|
||||
|
@ -356,8 +350,11 @@ getmxrr(host, mxhosts, droplocalhost, rcode)
|
|||
if (p != NULL)
|
||||
{
|
||||
*p = '\0';
|
||||
if (inet_addr(&MXHostBuf[1]) != -1)
|
||||
if (inet_addr(&MXHostBuf[1]) != INADDR_NONE)
|
||||
{
|
||||
nmx++;
|
||||
*p = ']';
|
||||
}
|
||||
else
|
||||
{
|
||||
trycanon = TRUE;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue