Import sendmail 8.12.9
This commit is contained in:
parent
8b739caa56
commit
3c5a1e863a
@ -1,11 +1,48 @@
|
||||
SENDMAIL RELEASE NOTES
|
||||
$Id: RELEASE_NOTES,v 8.1340.2.113 2003/02/11 19:17:41 gshapiro Exp $
|
||||
$Id: RELEASE_NOTES,v 8.1340.2.132 2003/03/29 14:02:26 ca Exp $
|
||||
|
||||
|
||||
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.12.9/8.12.9 2003/03/29
|
||||
SECURITY: Fix a buffer overflow in address parsing due to
|
||||
a char to int conversion problem which is potentially
|
||||
remotely exploitable. Problem found by Michal Zalewski.
|
||||
Note: an MTA that is not patched might be vulnerable to
|
||||
data that it receives from untrusted sources, which
|
||||
includes DNS.
|
||||
To provide partial protection to internal, unpatched sendmail MTAs,
|
||||
8.12.9 changes by default (char)0xff to (char)0x7f in
|
||||
headers etc. To turn off this conversion compile with
|
||||
-DALLOW_255 or use the command line option -d82.101.
|
||||
To provide partial protection for internal, unpatched MTAs that may be
|
||||
performing 7->8 or 8->7 bit MIME conversions, the default
|
||||
for MaxMimeHeaderLength has been changed to 2048/1024.
|
||||
Note: this does have a performance impact, and it only
|
||||
protects against frontal attacks from the outside.
|
||||
To disable the checks and return to pre-8.12.9 defaults,
|
||||
set MaxMimeHeaderLength to 0/0.
|
||||
Do not complain about -ba when submitting mail. Problem noted
|
||||
by Derek Wueppelmann.
|
||||
Fix compilation with Berkeley DB 1.85 on systems that do not
|
||||
have flock(2). Problem noted by Andy Harper of Kings
|
||||
College London.
|
||||
Properly initialize data structure for dns maps to avoid various
|
||||
errors, e.g., looping processes. Problem noted by
|
||||
Maurice Makaay.
|
||||
CONFIG: Prevent multiple application of rule to add smart host.
|
||||
Patch from Andrzej Filip.
|
||||
CONFIG: Fix queue group declaration in MAILER(`usenet').
|
||||
CONTRIB: buildvirtuser: New option -t builds the virtusertable
|
||||
text file instead of the database map.
|
||||
Portability:
|
||||
Revert wrong change made in 8.12.7 and actually use the
|
||||
builtin getopt() version in sendmail on Linux.
|
||||
This can be overridden by using -DSM_CONF_GETOPT=0
|
||||
in which case the OS supplied version will be used.
|
||||
|
||||
8.12.8/8.12.8 2003/02/11
|
||||
SECURITY: Fix a remote buffer overflow in header parsing by
|
||||
dropping sender and recipient header comments if the
|
||||
|
@ -3687,6 +3687,7 @@ confMAX_HEADERS_LENGTH MaxHeadersLength
|
||||
confMAX_MIME_HEADER_LENGTH MaxMimeHeaderLength
|
||||
[undefined] Maximum length of
|
||||
certain MIME header field values.
|
||||
If not set, sendmail uses 2048/1024.
|
||||
confCONNECTION_RATE_THROTTLE ConnectionRateThrottle
|
||||
[undefined] The maximum number of
|
||||
connections permitted per second per
|
||||
@ -3849,8 +3850,6 @@ confRUN_AS_USER RunAsUser [undefined] If set, become this user
|
||||
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.
|
||||
confMAX_RCPTS_PER_MESSAGE MaxRecipientsPerMessage
|
||||
[infinite] If set, allow no more than
|
||||
the specified number of recipients in
|
||||
@ -4375,4 +4374,4 @@ M4 DIVERSIONS
|
||||
8 DNS based blacklists
|
||||
9 special local rulesets (1 and 2)
|
||||
|
||||
$Revision: 8.623.2.21 $, Last updated $Date: 2003/01/17 00:36:57 $
|
||||
$Revision: 8.623.2.23 $, Last updated $Date: 2003/03/28 17:28:26 $
|
||||
|
@ -24,7 +24,7 @@
|
||||
######################################################################
|
||||
######################################################################
|
||||
|
||||
##### $Id: cfhead.m4,v 8.108.2.1 2002/08/27 20:19:08 gshapiro Exp $ #####
|
||||
##### $Id: cfhead.m4,v 8.108.2.2 2003/03/11 21:24:20 ca Exp $ #####
|
||||
##### $Id: cf.m4,v 8.32 1999/02/07 07:26:14 gshapiro Exp $ #####
|
||||
##### $Id: submit.mc,v 8.6.2.4 2002/12/29 03:54:34 ca Exp $ #####
|
||||
##### $Id: msp.m4,v 1.32 2002/03/26 22:02:03 ca Exp $ #####
|
||||
@ -32,7 +32,7 @@
|
||||
##### $Id: no_default_msa.m4,v 8.2 2001/02/14 05:03:22 gshapiro Exp $ #####
|
||||
|
||||
|
||||
##### $Id: proto.m4,v 8.649.2.14 2002/12/30 15:46:02 ca Exp $ #####
|
||||
##### $Id: proto.m4,v 8.649.2.17 2003/03/28 17:20:53 ca Exp $ #####
|
||||
|
||||
# level 10 config file format
|
||||
V10/Berkeley
|
||||
@ -110,7 +110,7 @@ D{MTAHost}[127.0.0.1]
|
||||
|
||||
|
||||
# Configuration version number
|
||||
DZ8.12.8/Submit
|
||||
DZ8.12.9/Submit
|
||||
|
||||
|
||||
###############
|
||||
@ -283,10 +283,12 @@ O Timeout.queuereturn=5d
|
||||
#O Timeout.queuereturn.normal=5d
|
||||
#O Timeout.queuereturn.urgent=2d
|
||||
#O Timeout.queuereturn.non-urgent=7d
|
||||
|
||||
O Timeout.queuewarn=4h
|
||||
#O Timeout.queuewarn.normal=4h
|
||||
#O Timeout.queuewarn.urgent=1h
|
||||
#O Timeout.queuewarn.non-urgent=12h
|
||||
|
||||
#O Timeout.hoststatus=30m
|
||||
#O Timeout.resolver.retrans=5s
|
||||
#O Timeout.resolver.retrans.first=5s
|
||||
@ -437,7 +439,7 @@ O TrustedUser=smmsp
|
||||
#O ControlSocketName=/var/spool/mqueue/.control
|
||||
|
||||
# Maximum MIME header length to protect MUAs
|
||||
#O MaxMimeHeaderLength=0/0
|
||||
#O MaxMimeHeaderLength=2048/1024
|
||||
|
||||
# Maximum length of the sum of all headers
|
||||
#O MaxHeadersLength=32768
|
||||
@ -754,7 +756,7 @@ SParse1
|
||||
|
||||
# handle numeric address spec
|
||||
R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
|
||||
R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path
|
||||
R$* < @ [ $+ ] > $* $: $1 < @ [ $2 ] : $S > $3 Add smart host to path
|
||||
R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
|
||||
R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
|
||||
R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer
|
||||
|
@ -133,6 +133,8 @@ Q`'$1`, '`$2')')
|
||||
define(`CF_LEVEL', `10')dnl
|
||||
define(`VERSIONID', ``##### $1 #####'')
|
||||
define(`LOCAL_RULE_0', `divert(3)')
|
||||
dnl for UUCP...
|
||||
define(`LOCAL_UUCP', `divert(4)')
|
||||
define(`LOCAL_RULE_1',
|
||||
`divert(9)dnl
|
||||
#######################################
|
||||
@ -303,4 +305,4 @@ define(`confMILTER_MACROS_ENVRCPT', ``{rcpt_mailer}, {rcpt_host}, {rcpt_addr}'')
|
||||
|
||||
|
||||
divert(0)dnl
|
||||
VERSIONID(`$Id: cfhead.m4,v 8.108.2.1 2002/08/27 20:19:08 gshapiro Exp $')
|
||||
VERSIONID(`$Id: cfhead.m4,v 8.108.2.2 2003/03/11 21:24:20 ca Exp $')
|
||||
|
@ -13,7 +13,7 @@ divert(-1)
|
||||
#
|
||||
divert(0)
|
||||
|
||||
VERSIONID(`$Id: proto.m4,v 8.649.2.14 2002/12/30 15:46:02 ca Exp $')
|
||||
VERSIONID(`$Id: proto.m4,v 8.649.2.17 2003/03/28 17:20:53 ca Exp $')
|
||||
|
||||
# level CF_LEVEL config file format
|
||||
V`'CF_LEVEL/ifdef(`VENDOR_NAME', `VENDOR_NAME', `Berkeley')
|
||||
@ -424,10 +424,14 @@ _OPTION(Timeout.queuereturn, `confTO_QUEUERETURN', `5d')
|
||||
_OPTION(Timeout.queuereturn.normal, `confTO_QUEUERETURN_NORMAL', `5d')
|
||||
_OPTION(Timeout.queuereturn.urgent, `confTO_QUEUERETURN_URGENT', `2d')
|
||||
_OPTION(Timeout.queuereturn.non-urgent, `confTO_QUEUERETURN_NONURGENT', `7d')
|
||||
ifdef(`confTO_QUEUERETURN_DSN', `dnl
|
||||
O Timeout.queuereturn.dsn=confTO_QUEUERETURN_DSN')
|
||||
_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')
|
||||
ifdef(`confTO_QUEUEWARN_DSN', `dnl
|
||||
O Timeout.queuewarn.dsn=confTO_QUEUEWARN_DSN')
|
||||
_OPTION(Timeout.hoststatus, `confTO_HOSTSTATUS', `30m')
|
||||
_OPTION(Timeout.resolver.retrans, `confTO_RESOLVER_RETRANS', `5s')
|
||||
_OPTION(Timeout.resolver.retrans.first, `confTO_RESOLVER_RETRANS_FIRST', `5s')
|
||||
@ -582,7 +586,7 @@ _OPTION(TrustedUser, `confTRUSTED_USER', `root')
|
||||
_OPTION(ControlSocketName, `confCONTROL_SOCKET_NAME', `/var/spool/mqueue/.control')
|
||||
|
||||
# Maximum MIME header length to protect MUAs
|
||||
_OPTION(MaxMimeHeaderLength, `confMAX_MIME_HEADER_LENGTH', `0/0')
|
||||
_OPTION(MaxMimeHeaderLength, `confMAX_MIME_HEADER_LENGTH', `2048/1024')
|
||||
|
||||
# Maximum length of the sum of all headers
|
||||
_OPTION(MaxHeadersLength, `confMAX_HEADERS_LENGTH', `32768')
|
||||
@ -1017,7 +1021,7 @@ ifdef(`_MAILER_smtp_',
|
||||
`# handle numeric address spec
|
||||
dnl there is no check whether this is really an IP number
|
||||
R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
|
||||
R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path
|
||||
R$* < @ [ $+ ] > $* $: $1 < @ [ $2 ] : $S > $3 Add smart host to path
|
||||
R$* < @ [ $+ ] : > $* $#_SMTP_ $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
|
||||
R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
|
||||
R$* < @ [ $+ ] : $+ > $* $#_SMTP_ $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer',
|
||||
|
@ -11,8 +11,8 @@ divert(-1)
|
||||
# the sendmail distribution.
|
||||
#
|
||||
#
|
||||
VERSIONID(`$Id: version.m4,v 8.92.2.14 2003/01/15 17:55:43 ca Exp $')
|
||||
VERSIONID(`$Id: version.m4,v 8.92.2.15 2003/03/19 21:19:52 ca Exp $')
|
||||
#
|
||||
divert(0)
|
||||
# Configuration version number
|
||||
DZ8.12.8`'ifdef(`confCF_VERSION', `/confCF_VERSION')
|
||||
DZ8.12.9`'ifdef(`confCF_VERSION', `/confCF_VERSION')
|
||||
|
@ -1,6 +1,6 @@
|
||||
PUSHDIVERT(-1)
|
||||
#
|
||||
# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
|
||||
# Copyright (c) 1998-2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 1983 Eric P. Allman. All rights reserved.
|
||||
# Copyright (c) 1988, 1993
|
||||
@ -21,8 +21,8 @@ POPDIVERT
|
||||
### USENET Mailer specification ###
|
||||
####################################
|
||||
|
||||
VERSIONID(`$Id: usenet.m4,v 8.21 2000/10/26 02:08:19 ca Exp $')
|
||||
VERSIONID(`$Id: usenet.m4,v 8.21.4.1 2003/03/03 22:53:03 ca Exp $')
|
||||
|
||||
Musenet, P=USENET_MAILER_PATH, F=_MODMF_(USENET_MAILER_FLAGS, `USENET'), S=EnvFromL, R=EnvToL,
|
||||
_OPTINS(`USENET_MAILER_MAX', `M=', `, ')T=X-Usenet/X-Usenet/X-Unix,USENET_MAILER_QGRP
|
||||
_OPTINS(`USENET_MAILER_MAX', `M=', `, ')T=X-Usenet/X-Usenet/X-Unix,_USENET_QGRP
|
||||
A=USENET_MAILER_ARGS $u
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
# Copyright (c) 1999-2002 Gregory Neil Shapiro. All Rights Reserved.
|
||||
# Copyright (c) 1999-2003 Gregory Neil Shapiro. All Rights Reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
@ -27,7 +27,7 @@
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
|
||||
# $Id: buildvirtuser,v 1.5 2002/02/08 08:10:59 gshapiro Exp $
|
||||
# $Id: buildvirtuser,v 1.5.2.1 2003/03/15 23:30:26 gshapiro Exp $
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@ -35,7 +35,7 @@ buildvirtuser - Build virtusertable support from a directory of files
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
buildvirtuser [-f]
|
||||
buildvirtuser [-f] [-t]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@ -53,6 +53,9 @@ the left hand side.
|
||||
The -f option forces the database to be rebuilt regardless of whether
|
||||
any file changes were detected.
|
||||
|
||||
The -t option instructs the program to build a text file instead of a
|
||||
database. The text file can then be used with makemap.
|
||||
|
||||
=head1 CONFIGURATION
|
||||
|
||||
In order to function properly, sendmail must be configured to use these
|
||||
@ -114,7 +117,13 @@ my $newest = 0;
|
||||
my ($lhs, $domain, $key, $value);
|
||||
my $opts = {};
|
||||
|
||||
getopts('f', $opts) || die "Usage: $0 [-f]\n";
|
||||
getopts('ft', $opts) || die "Usage: $0 [-f] [-t]\n";
|
||||
|
||||
if ($opts->{t})
|
||||
{
|
||||
$newvirt = "$maildir/virtusertable.new";
|
||||
$virt = "$maildir/virtusertable";
|
||||
}
|
||||
|
||||
opendir(VIRTS, $virts) || die "Could not open directory $virts: $!\n";
|
||||
my @virts = grep { -f "$virts/$_" } readdir(VIRTS);
|
||||
@ -168,7 +177,15 @@ if ($opts->{f} || $virtmtime < $newest)
|
||||
{
|
||||
print STDOUT "Rebuilding $virt\n";
|
||||
# logger -s -t ${prog} -p mail.info "Rebuilding ${basedir}/virtusertable"
|
||||
open(MAKEMAP, "|$makemap $dbtype $newvirt") || die "Could not start makemap: $!\n";
|
||||
if ($opts->{t})
|
||||
{
|
||||
open(MAKEMAP, ">$newvirt") || die "Could not open $newvirt: $!\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
open(MAKEMAP, "|$makemap $dbtype $newvirt") || die "Could not start makemap: $!\n";
|
||||
}
|
||||
|
||||
foreach $key (keys %virt)
|
||||
{
|
||||
print MAKEMAP "$key\t\t$virt{$key}\n";
|
||||
|
@ -9,7 +9,7 @@
|
||||
.\" the sendmail distribution.
|
||||
.\"
|
||||
.\"
|
||||
.\" $Id: op.me,v 8.609.2.20 2003/01/15 19:17:16 ca Exp $
|
||||
.\" $Id: op.me,v 8.609.2.23 2003/03/28 05:51:16 ca Exp $
|
||||
.\"
|
||||
.\" eqn op.me | pic | troff -me
|
||||
.\"
|
||||
@ -90,7 +90,7 @@ Sendmail, Inc.
|
||||
.de Ve
|
||||
Version \\$2
|
||||
..
|
||||
.Ve $Revision: 8.609.2.20 $
|
||||
.Ve $Revision: 8.609.2.23 $
|
||||
.rm Ve
|
||||
.sp
|
||||
For Sendmail Version 8.12
|
||||
@ -6292,7 +6292,7 @@ Addr Address mask (defaults INADDR_ANY)
|
||||
Family Address family (defaults to INET)
|
||||
SndBufSize Size of TCP send buffer
|
||||
RcvBufSize Size of TCP receive buffer
|
||||
Modifier Options (flags) for the daemon
|
||||
Modifier Options (flags) for the client
|
||||
.)b
|
||||
The
|
||||
.i Addr ess
|
||||
@ -7012,6 +7012,10 @@ Defaults to 25.
|
||||
Specify the maximum message size
|
||||
to be advertised in the ESMTP EHLO response.
|
||||
Messages larger than this will be rejected.
|
||||
If set to a value greater than zero,
|
||||
that value will be listed in the SIZE response,
|
||||
otherwise SIZE is advertised in the ESMTP EHLO response
|
||||
without a parameter.
|
||||
.ip MaxMimeHeaderLength=\fIN[/M]\fP
|
||||
[no short name]
|
||||
Sets the maximum length of certain MIME header field values to
|
||||
@ -7029,7 +7033,8 @@ is not specified, one half of
|
||||
.i N
|
||||
will be used.
|
||||
By default,
|
||||
these values are 0, meaning no checks are done.
|
||||
these values are 2048 and 1024, respectively.
|
||||
To allow any length, a value of 0 can be specified.
|
||||
.ip MaxQueueChildren=\fIN\fP
|
||||
[no short name]
|
||||
When set, this limits the number of concurrent queue runner processes to
|
||||
@ -8954,6 +8959,10 @@ Reject connection if filter unavailable.
|
||||
.ip T
|
||||
Temporary fail connection if filter unavailable.
|
||||
.pp
|
||||
If neither F=R nor F=T is specified, the message is passed through
|
||||
.i sendmail
|
||||
in case of filter errors as if the failing filters were not present.
|
||||
.pp
|
||||
The timeouts can be set using the four fields inside of the
|
||||
.b T=
|
||||
equate:
|
||||
@ -10755,7 +10764,7 @@ replace it with a blank sheet for double-sided output.
|
||||
.\".sz 10
|
||||
.\"Eric Allman
|
||||
.\".sp
|
||||
.\"Version $Revision: 8.609.2.20 $
|
||||
.\"Version $Revision: 8.609.2.23 $
|
||||
.\".ce 0
|
||||
.bp 3
|
||||
.ce
|
||||
|
@ -6,9 +6,9 @@
|
||||
.\" the sendmail distribution.
|
||||
.\"
|
||||
.\"
|
||||
.\" $Id: editmap.8,v 1.8 2001/06/15 21:33:19 ca Exp $
|
||||
.\" $Id: editmap.8,v 1.8.4.1 2003/03/15 23:38:57 gshapiro Exp $
|
||||
.\"
|
||||
.TH EDITMAP 8 "$Date: 2001/06/15 21:33:19 $"
|
||||
.TH EDITMAP 8 "$Date: 2003/03/15 23:38:57 $"
|
||||
.SH NAME
|
||||
.B editmap
|
||||
\- query and edit single records in database maps for sendmail
|
||||
@ -23,7 +23,7 @@ maptype mapname
|
||||
key [ "value ..." ]
|
||||
.SH DESCRIPTION
|
||||
.B Editmap
|
||||
queries or edits one record in a database maps used by the keyed map lookups in
|
||||
queries or edits one record in database maps used by the keyed map lookups in
|
||||
sendmail(8).
|
||||
Arguments are passed on the command line and output (for queries) is
|
||||
directed to standard output.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002 Sendmail, Inc. and its suppliers.
|
||||
* Copyright (c) 2002, 2003 Sendmail, Inc. and its suppliers.
|
||||
* All rights reserved.
|
||||
*
|
||||
* By using this file, you agree to the terms and conditions set
|
||||
@ -7,7 +7,7 @@
|
||||
* the sendmail distribution.
|
||||
*
|
||||
*
|
||||
* $Id: bdb.h,v 1.1.2.3 2002/12/05 05:07:44 ca Exp $
|
||||
* $Id: bdb.h,v 1.1.2.4 2003/03/06 16:27:38 ca Exp $
|
||||
*/
|
||||
|
||||
#ifndef SM_BDB_H
|
||||
@ -35,11 +35,11 @@
|
||||
# else /* DB_VERSION_MAJOR >= 4 && DB_VERSION_MINOR >= 1 */
|
||||
|
||||
# define DBTXN
|
||||
# if !HASFLOCK
|
||||
# if !HASFLOCK && defined(DB_FCNTL_LOCKING)
|
||||
# define SM_DB_FLAG_ADD(flag) (flag) |= DB_FCNTL_LOCKING
|
||||
# else /* !HASFLOCK */
|
||||
# else /* !HASFLOCK && defined(DB_FCNTL_LOCKING) */
|
||||
# define SM_DB_FLAG_ADD(flag) ((void) 0)
|
||||
# endif /* !HASFLOCK */
|
||||
# endif /* !HASFLOCK && defined(DB_FCNTL_LOCKING) */
|
||||
|
||||
# endif /* DB_VERSION_MAJOR >= 4 && DB_VERSION_MINOR >= 1 */
|
||||
#endif /* NEWDB */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers.
|
||||
* Copyright (c) 1998-2003 Sendmail, Inc. and its suppliers.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
|
||||
* Copyright (c) 1988, 1993
|
||||
@ -10,7 +10,7 @@
|
||||
* the sendmail distribution.
|
||||
*
|
||||
*
|
||||
* $Id: conf.h,v 1.90.2.13 2002/12/10 03:08:56 ca Exp $
|
||||
* $Id: conf.h,v 1.90.2.14 2003/03/06 18:38:06 ca Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -1326,6 +1326,7 @@ extern void *malloc();
|
||||
# ifndef USESETEUID
|
||||
# define USESETEUID 0 /* has it due to POSIX, but doesn't work */
|
||||
# endif /* USESETEUID */
|
||||
# define SM_CONF_GETOPT 0 /* need a replacement for getopt(3) */
|
||||
# define HASUNAME 1 /* use System V uname(2) system call */
|
||||
# define HASUNSETENV 1 /* has unsetenv(3) call */
|
||||
# define ERRLIST_PREDEFINED /* don't declare sys_errlist */
|
||||
|
@ -184,11 +184,11 @@ other callbacks are message-oriented.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -134,11 +134,11 @@ filter process processing messages from two MTAs:
|
||||
</div>
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -4,7 +4,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<!--
|
||||
$Id: index.html,v 1.10 2001/06/01 00:05:03 ca Exp $
|
||||
$Id: index.html,v 1.10.4.1 2003/03/05 19:54:19 ca Exp $
|
||||
-->
|
||||
|
||||
<h1>Filtering Mail with Sendmail</h1>
|
||||
@ -82,11 +82,11 @@ filters and the MTA.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000, 2001 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2001, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -16,7 +16,7 @@ To compile a filter, modify the Makefile provided with the sample program, or:
|
||||
<li>Put the include and Sendmail directories in your include path
|
||||
(e.g. -I/path/to/include -I/path/to/sendmail).
|
||||
|
||||
<li>Make sure libmilter.so is in your library path, and link your
|
||||
<li>Make sure libmilter.a is in your library path, and link your
|
||||
application with it (e.g. "-lmilter").
|
||||
|
||||
<li>Compile with pthreads, either by using -pthread for gcc, or
|
||||
@ -31,10 +31,6 @@ and your linking command line will look something like
|
||||
cc -o myfilter [object-files] -L[library-location] -lmilter -pthread
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
To run the filter, the Milter shared library must be available to the
|
||||
run-time linker.
|
||||
|
||||
<H2><a name="config">Configuring Sendmail</A></H2>
|
||||
|
||||
First, you must compile sendmail with MILTER defined.
|
||||
@ -161,10 +157,10 @@ For information about available macros and their meanings, please
|
||||
consult the sendmail documentation.
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000-2002 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000-2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body> </html>
|
||||
|
@ -5,11 +5,11 @@
|
||||
FAQ? Mailing list? More sample filters?
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -4,7 +4,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<!--
|
||||
$Id: overview.html,v 1.12 2001/06/01 00:05:03 ca Exp $
|
||||
$Id: overview.html,v 1.12.4.1 2003/03/05 19:54:20 ca Exp $
|
||||
-->
|
||||
|
||||
<h1>Technical Overview</h1>
|
||||
@ -184,11 +184,11 @@ In the case of <TT>Abort</TT> the
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000, 2001 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2001, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -480,11 +480,11 @@ main(argc, argv)
|
||||
</pre>
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000-2002 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000-2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -105,11 +105,11 @@ href="smfi_chgheader.html">smfi_chgheader</a>.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000-2002 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000-2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -70,11 +70,11 @@ in the smfiDesc_str passed to
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -107,11 +107,11 @@ Otherwise, it returns MI_SUCCESS.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000-2002 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000-2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -69,11 +69,11 @@ The addresses to be removed must match exactly. For example, an address and its
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -49,11 +49,11 @@ Get the connection-specific data pointer for this connection.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -86,11 +86,11 @@ sendmail distribution.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000, 2002 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2002-2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -38,11 +38,11 @@ Hand control to libmilter event loop.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -150,11 +150,11 @@ the following values, describing the actions the filter may take:
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000-2001, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -80,11 +80,11 @@ Otherwise, it will return MI_SUCCESS.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000-2001, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -50,11 +50,11 @@ to zero.</td>
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2002 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2002-2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -49,16 +49,26 @@ Set the socket through which this filter should communicate with sendmail.
|
||||
<tr>
|
||||
<th valign="top" align=left>RETURN VALUES</th>
|
||||
|
||||
<td>smfi_setconn will not fail on an invalid address. The failure will
|
||||
only be detected in <a href="smfi_main.html">smfi_main</a></td>
|
||||
<td>smfi_setconn will not fail on an invalid address.
|
||||
The failure will only be detected in <a href="smfi_main.html">smfi_main</a></td>.
|
||||
Nevertheless, smfi_setconn may fail for other reasons, e.g.,
|
||||
due to a lack of memory.
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th valign="top" align=left>NOTES</th>
|
||||
|
||||
<td>
|
||||
<ul><li>If possible, filters should not run as root when communicating over unix/local domain sockets.
|
||||
<li>Unix/local sockets should have their permissions set to 0600 (read/write permission only for the socket's owner).
|
||||
<ul>
|
||||
<li>If possible, filters should not run as root when communicating
|
||||
over unix/local domain sockets.
|
||||
<li>Unix/local sockets should have their permissions set to
|
||||
0600 (read/write permission only for the socket's owner) or
|
||||
0660 (read/write permission for the socket's owner and group)
|
||||
which is useful if the sendmail RunAsUser option is used.
|
||||
The permissions for a unix/local domain socket are determined as
|
||||
usual by <code>umask</code>, which should be set to 007 or 077
|
||||
before calling <code>smfi_setconn()</code>.
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@ -67,11 +77,11 @@ only be detected in <a href="smfi_main.html">smfi_main</a></td>
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -67,11 +67,11 @@ and set the pointer to NULL.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000-2001, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -87,11 +87,11 @@ SMFI_TEMPFAIL is used for the message, the custom reply is not used.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000, 2002 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2002-2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -53,11 +53,11 @@ no wait, <b>not</b> "wait forever".
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000, 2002 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2002-2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -70,11 +70,11 @@ message is later aborted outside its control.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -70,11 +70,11 @@ significantly impact filter performance.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000-2002 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000-2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -56,11 +56,11 @@ currently ignored.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -80,11 +80,11 @@ routine, this filter's xxfi_connect() will not be called.</td>
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000-2001, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -76,17 +76,17 @@ Handle the envelope FROM command.
|
||||
<tr>
|
||||
<th valign="top" align=left>NOTES</th>
|
||||
<td>For more details on ESTMP responses, please see RFC
|
||||
<a href="http://www.cis.ohio-state.edu/rfc/rfc1869.txt">1869</a>.</td>
|
||||
<a href="http://www.rfc-editor.org/rfc/rfc1869.txt">1869</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -78,17 +78,17 @@ Handle the envelope RCPT command.
|
||||
<tr>
|
||||
<th valign="top" align=left>NOTES</th>
|
||||
<td>For more details on ESTMP responses, please see RFC
|
||||
<a href="http://www.cis.ohio-state.edu/rfc/rfc1869.txt">1869</a>.</td>
|
||||
<a href="http://www.rfc-editor.org/rfc/rfc1869.txt">1869</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -43,11 +43,11 @@ Handle the end of message headers.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -48,11 +48,11 @@ End of a message.
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -56,7 +56,7 @@ Handle a message header.
|
||||
<ul>
|
||||
<li>Later filters will see header changes/additions made by earlier ones.
|
||||
<li>For much more detail about header format, please see
|
||||
RFC <a href="http://www.cis.ohio-state.edu/htbin/rfc/rfc822.html">822</a>
|
||||
RFC <a href="http://www.rfc-editor.org/rfc/rfc822.html">822</a>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@ -64,11 +64,11 @@ RFC <a href="http://www.cis.ohio-state.edu/htbin/rfc/rfc822.html">822</a>
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -49,11 +49,11 @@ three times</td>
|
||||
|
||||
<hr size="1">
|
||||
<font size="-1">
|
||||
Copyright (c) 2000 Sendmail, Inc. and its suppliers.
|
||||
Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers.
|
||||
All rights reserved.
|
||||
<br>
|
||||
By using this file, you agree to the terms and conditions set
|
||||
forth in the <a href="LICENSE.txt">LICENSE</a>.
|
||||
forth in the LICENSE.
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers.
|
||||
* Copyright (c) 1998-2003 Sendmail, Inc. and its suppliers.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
|
||||
* Copyright (c) 1988, 1993
|
||||
@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
#include <sm/gen.h>
|
||||
SM_RCSID("@(#)$Id: clock.c,v 1.35.2.2 2002/06/27 23:24:20 gshapiro Exp $")
|
||||
SM_RCSID("@(#)$Id: clock.c,v 1.35.2.3 2003/03/03 19:57:40 ca Exp $")
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#include <errno.h>
|
||||
@ -167,7 +167,7 @@ sm_sigsafe_seteventm(intvl, func, arg)
|
||||
(void) setitimer(ITIMER_REAL, &itime, NULL);
|
||||
# else /* SM_CONF_SETITIMER */
|
||||
intvl = SmEventQueue->ev_time - now;
|
||||
(void) alarm((unsigned) intvl < 1 ? 1 : intvl);
|
||||
(void) alarm((unsigned) (intvl < 1 ? 1 : intvl));
|
||||
# endif /* SM_CONF_SETITIMER */
|
||||
if (wasblocked == 0)
|
||||
(void) sm_releasesignal(SIGALRM);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
|
||||
* Copyright (c) 2000-2003 Sendmail, Inc. and its suppliers.
|
||||
* All rights reserved.
|
||||
*
|
||||
* By using this file, you agree to the terms and conditions set
|
||||
@ -9,7 +9,7 @@
|
||||
*/
|
||||
|
||||
#include <sm/gen.h>
|
||||
SM_RCSID("@(#)$Id: config.c,v 1.27 2002/01/23 17:30:48 gshapiro Exp $")
|
||||
SM_RCSID("@(#)$Id: config.c,v 1.27.2.1 2003/03/06 02:16:24 ca Exp $")
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <sm/heap.h>
|
||||
@ -197,6 +197,9 @@ char *SmCompileOptions[] =
|
||||
#if SM_CONF_SETITIMER
|
||||
"SM_CONF_SETITIMER",
|
||||
#endif /* SM_CONF_SETITIMER */
|
||||
#if SM_CONF_SIGSETJMP
|
||||
"SM_CONF_SIGSETJMP",
|
||||
#endif /* SM_CONF_SIGSETJMP */
|
||||
#if SM_CONF_SHM
|
||||
"SM_CONF_SHM",
|
||||
#endif /* SM_CONF_SHM */
|
||||
|
@ -18,7 +18,7 @@ SM_IDSTR(copyright,
|
||||
Copyright (c) 1990, 1993, 1994\n\
|
||||
The Regents of the University of California. All rights reserved.\n")
|
||||
|
||||
SM_IDSTR(id, "@(#)$Id: mail.local.c,v 8.239.2.4 2003/01/15 19:17:15 ca Exp $")
|
||||
SM_IDSTR(id, "@(#)$Id: mail.local.c,v 8.239.2.5 2003/03/15 23:43:20 gshapiro Exp $")
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <sm/errstring.h>
|
||||
@ -1135,7 +1135,7 @@ deliver(fd, name)
|
||||
goto err1;
|
||||
}
|
||||
|
||||
/* Get the starting offset of the new message for biff. */
|
||||
/* Get the starting offset of the new message */
|
||||
curoff = lseek(mbfd, (off_t) 0, SEEK_END);
|
||||
(void) sm_snprintf(biffmsg, sizeof(biffmsg), "%s@%lld\n",
|
||||
name, (LONGLONG_T) curoff);
|
||||
|
@ -9,7 +9,7 @@
|
||||
# the sendmail distribution.
|
||||
#
|
||||
#
|
||||
# $Id: README,v 8.355.2.13 2003/01/15 19:17:15 ca Exp $
|
||||
# $Id: README,v 8.355.2.14 2003/03/27 21:39:29 ca Exp $
|
||||
#
|
||||
|
||||
This directory contains the source files for sendmail(TM).
|
||||
@ -478,6 +478,9 @@ USE_ENVIRON Set this to 1 to access process environment variables from
|
||||
parameter of main().
|
||||
USE_DOUBLE_FORK By default this is on (1). Set it to 0 to suppress the
|
||||
extra fork() used to avoid intermediate zombies.
|
||||
ALLOW_255 Do not convert (char)0xff to (char)0x7f in headers etc.
|
||||
This can also be done at runtime with the command line
|
||||
option -d82.101.
|
||||
|
||||
|
||||
+-----------------------+
|
||||
@ -1794,4 +1797,4 @@ util.c Some general purpose routines used by sendmail.
|
||||
version.c The version number and information about this
|
||||
version of sendmail.
|
||||
|
||||
(Version $Revision: 8.355.2.13 $, last update $Date: 2003/01/15 19:17:15 $ )
|
||||
(Version $Revision: 8.355.2.14 $, last update $Date: 2003/03/27 21:39:29 $ )
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include <sendmail.h>
|
||||
|
||||
SM_RCSID("@(#)$Id: collect.c,v 8.242.2.3 2002/12/03 17:06:30 gshapiro Exp $")
|
||||
SM_RCSID("@(#)$Id: collect.c,v 8.242.2.4 2003/03/28 17:34:39 ca Exp $")
|
||||
|
||||
static void collecttimeout __P((time_t));
|
||||
static void dferror __P((SM_FILE_T *volatile, char *, ENVELOPE *));
|
||||
@ -444,6 +444,7 @@ collect(fp, smtpmode, hdrp, e)
|
||||
OpMode != MD_ARPAFTP))
|
||||
|
||||
{
|
||||
SM_ASSERT(pbp < peekbuf + sizeof(peekbuf));
|
||||
*pbp++ = c;
|
||||
c = '.';
|
||||
}
|
||||
@ -455,11 +456,14 @@ collect(fp, smtpmode, hdrp, e)
|
||||
else
|
||||
{
|
||||
/* push back the ".\rx" */
|
||||
SM_ASSERT(pbp < peekbuf + sizeof(peekbuf));
|
||||
*pbp++ = c;
|
||||
if (OpMode != MD_SMTP &&
|
||||
OpMode != MD_DAEMON &&
|
||||
OpMode != MD_ARPAFTP)
|
||||
{
|
||||
SM_ASSERT(pbp < peekbuf +
|
||||
sizeof(peekbuf));
|
||||
*pbp++ = '\r';
|
||||
c = '.';
|
||||
}
|
||||
@ -625,6 +629,7 @@ collect(fp, smtpmode, hdrp, e)
|
||||
}
|
||||
|
||||
/* trim off trailing CRLF or NL */
|
||||
SM_ASSERT(bp > buf);
|
||||
if (*--bp != '\n' || *--bp != '\r')
|
||||
bp++;
|
||||
*bp = '\0';
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include <sendmail.h>
|
||||
|
||||
SM_RCSID("@(#)$Id: conf.c,v 8.972.2.27 2003/01/15 19:17:14 ca Exp $")
|
||||
SM_RCSID("@(#)$Id: conf.c,v 8.972.2.35 2003/03/28 05:46:09 ca Exp $")
|
||||
|
||||
#include <sendmail/pathnames.h>
|
||||
|
||||
@ -329,6 +329,8 @@ setdefaults(e)
|
||||
DontProbeInterfaces = DPI_PROBEALL;
|
||||
DoubleBounceAddr = "postmaster";
|
||||
MaxHeadersLength = MAXHDRSLEN;
|
||||
MaxMimeHeaderLength = MAXLINE;
|
||||
MaxMimeFieldLength = MaxMimeHeaderLength / 2;
|
||||
MaxForwardEntries = 0;
|
||||
FastSplit = 1;
|
||||
#if SASL
|
||||
@ -3081,7 +3083,7 @@ static char *DefaultUserShells[] =
|
||||
"/bin/pam",
|
||||
"/usr/bin/keysh", /* key shell (extended Korn shell) */
|
||||
"/bin/posix/sh",
|
||||
"/sbin/sh"
|
||||
"/sbin/sh",
|
||||
# endif /* V4FS */
|
||||
# endif /* __hpux */
|
||||
# if defined(_AIX3) || defined(_AIX4)
|
||||
@ -5881,202 +5883,318 @@ char *OsCompileOptions[] =
|
||||
char *FFRCompileOptions[] =
|
||||
{
|
||||
#if _FFR_ADAPTIVE_EOL
|
||||
/* tries to be smart about \r\n versus \n from broken clients */
|
||||
/* known to be broken, do not use */
|
||||
"_FFR_ADAPTIVE_EOL",
|
||||
#endif /* _FFR_ADAPTIVE_EOL */
|
||||
#if _FFR_ALLOW_SASLINFO
|
||||
/* DefaultAuthInfo can be specified by user. */
|
||||
/* DefaultAuthInfo doesn't really work in 8.12 anymore. */
|
||||
"_FFR_ALLOW_SASLINFO",
|
||||
#endif /* _FFR_ALLOW_SASLINFO */
|
||||
#if _FFR_ALLOW_S0_ERROR_4XX
|
||||
/* Allow for tempfail from S0 (ruleset 0). */
|
||||
"_FFR_ALLOW_S0_ERROR_4XX",
|
||||
#endif /* _FFR_ALLOW_S0_ERROR_4XX */
|
||||
#if _FFR_BESTMX_BETTER_TRUNCATION
|
||||
/* Better truncation of list of MX records for dns map. */
|
||||
"_FFR_BESTMX_BETTER_TRUNCATION",
|
||||
#endif /* _FFR_BESTMX_BETTER_TRUNCATION */
|
||||
#if _FFR_BLOCK_PROXIES
|
||||
/*
|
||||
** Try to deal with open HTTP proxies that are used to send spam
|
||||
** by recognizing some commands from them.
|
||||
*/
|
||||
|
||||
"_FFR_BLOCK_PROXIES",
|
||||
#endif /* _FFR_BLOCK_PROXIES */
|
||||
#if _FFR_CACHE_LPC
|
||||
/* Cache connections to LCP based mailers */
|
||||
/* Christophe Wolfhugel of France Telecom Oleane */
|
||||
"_FFR_CACHE_LPC",
|
||||
#endif /* _FFR_CACHE_LPC */
|
||||
#if _FFR_CATCH_BROKEN_MTAS
|
||||
/* Deal with MTAs that send a reply during the DATA phase. */
|
||||
"_FFR_CATCH_BROKEN_MTAS",
|
||||
#endif /* _FFR_CATCH_BROKEN_MTAS */
|
||||
#if _FFR_CATCH_LONG_STRINGS
|
||||
/* Report long address strings instead of silently ignoring them. */
|
||||
"_FFR_CATCH_LONG_STRINGS",
|
||||
#endif /* _FFR_CATCH_LONG_STRINGS */
|
||||
#if _FFR_CHECK_EOM
|
||||
/* Enable check_eom ruleset */
|
||||
"_FFR_CHECK_EOM",
|
||||
#endif /* _FFR_CHECK_EOM */
|
||||
#if _FFR_CHK_QUEUE
|
||||
/* Stricter checks about queue directory permissions. */
|
||||
"_FFR_CHK_QUEUE",
|
||||
#endif /* _FFR_CHK_QUEUE */
|
||||
#if _FFR_CONTROL_MSTAT
|
||||
/* Extended daemon status. */
|
||||
"_FFR_CONTROL_MSTAT",
|
||||
#endif /* _FFR_CONTROL_MSTAT */
|
||||
#if _FFR_DAEMON_NETUNIX
|
||||
/* Allow local (not just TCP) socket connection to server. */
|
||||
"_FFR_DAEMON_NETUNIX",
|
||||
#endif /* _FFR_DAEMON_NETUNIX */
|
||||
#if _FFR_DEAL_WITH_ERROR_SSL
|
||||
/* Deal with SSL errors by recognizing them as EOF. */
|
||||
"_FFR_DEAL_WITH_ERROR_SSL",
|
||||
#endif /* _FFR_DEAL_WITH_ERROR_SSL */
|
||||
#if _FFR_DEPRECATE_MAILER_FLAG_I
|
||||
/* What it says :-) */
|
||||
"_FFR_DEPRECATE_MAILER_FLAG_I",
|
||||
#endif /* _FFR_DEPRECATE_MAILER_FLAG_I */
|
||||
#if _FFR_DIGUNIX_SAFECHOWN
|
||||
/* Properly set SAFECHOWN (include/sm/conf.h) for Digital UNIX */
|
||||
/* Problem noted by Anne Bennett of Concordia University */
|
||||
"_FFR_DIGUNIX_SAFECHOWN",
|
||||
#endif /* _FFR_DIGUNIX_SAFECHOWN */
|
||||
#if _FFR_DNSMAP_ALIASABLE
|
||||
/* Allow dns map type to be used for aliases. */
|
||||
/* Don Lewis of TDK */
|
||||
"_FFR_DNSMAP_ALIASABLE",
|
||||
#endif /* _FFR_DNSMAP_ALIASABLE */
|
||||
#if _FFR_DNSMAP_BASE
|
||||
/* Specify a "base" domain for DNS lookups. */
|
||||
"_FFR_DNSMAP_BASE",
|
||||
#endif /* _FFR_DNSMAP_BASE */
|
||||
#if _FFR_DNSMAP_MULTI
|
||||
/* Allow multiple return values for DNS map. */
|
||||
"_FFR_DNSMAP_MULTI",
|
||||
# if _FFR_DNSMAP_MULTILIMIT
|
||||
/* Limit number of return values for DNS map. */
|
||||
"_FFR_DNSMAP_MULTILIMIT",
|
||||
# endif /* _FFR_DNSMAP_MULTILIMIT */
|
||||
#endif /* _FFR_DNSMAP_MULTI */
|
||||
#if _FFR_DONTLOCKFILESFORREAD_OPTION
|
||||
/* Enable DontLockFilesForRead option. */
|
||||
"_FFR_DONTLOCKFILESFORREAD_OPTION",
|
||||
#endif /* _FFR_DONTLOCKFILESFORREAD_OPTION */
|
||||
# if _FFR_DONT_STOP_LOOKING
|
||||
#if _FFR_DONT_STOP_LOOKING
|
||||
/* Continue with DNS lookups on ECONNREFUSED and TRY_AGAIN. */
|
||||
/* Noted by Neil Rickert of Northern Illinois University */
|
||||
"_FFR_DONT_STOP_LOOKING",
|
||||
# endif /* _FFR_DONT_STOP_LOOKING */
|
||||
#endif /* _FFR_DONT_STOP_LOOKING */
|
||||
#if _FFR_DOTTED_USERNAMES
|
||||
/* Allow usernames with '.' */
|
||||
"_FFR_DOTTED_USERNAMES",
|
||||
#endif /* _FFR_DOTTED_USERNAMES */
|
||||
#if _FFR_DROP_TRUSTUSER_WARNING
|
||||
/*
|
||||
** Don't issue this warning:
|
||||
** "readcf: option TrustedUser may cause problems on systems
|
||||
** which do not support fchown() if UseMSP is not set.
|
||||
*/
|
||||
|
||||
"_FFR_DROP_TRUSTUSER_WARNING",
|
||||
#endif /* _FFR_DROP_TRUSTUSER_WARNING */
|
||||
#if _FFR_FIX_DASHT
|
||||
/*
|
||||
** If using -t, force not sending to argv recipients, even
|
||||
** if they are mentioned in the headers.
|
||||
*/
|
||||
|
||||
"_FFR_FIX_DASHT",
|
||||
#endif /* _FFR_FIX_DASHT */
|
||||
#if _FFR_FORWARD_SYSERR
|
||||
/* Cause a "syserr" if forward file isn't "safe". */
|
||||
"_FFR_FORWARD_SYSERR",
|
||||
#endif /* _FFR_FORWARD_SYSERR */
|
||||
#if _FFR_GEN_ORCPT
|
||||
/* Generate a ORCPT DSN arg if not already provided */
|
||||
"_FFR_GEN_ORCPT",
|
||||
#endif /* _FFR_GEN_ORCPT */
|
||||
#if _FFR_GROUPREADABLEAUTHINFOFILE
|
||||
/* Allow group readable DefaultAuthInfo file. */
|
||||
"_FFR_GROUPREADABLEAUTHINFOFILE",
|
||||
#endif /* _FFR_GROUPREADABLEAUTHINFOFILE */
|
||||
#if _FFR_HANDLE_ISO8859_GECOS
|
||||
/*
|
||||
** Allow ISO 8859 characters in GECOS field: replace them
|
||||
** ith ASCII "equivalent".
|
||||
*/
|
||||
|
||||
/* Peter Eriksson of Linkopings universitet */
|
||||
"_FFR_HANDLE_ISO8859_GECOS",
|
||||
#endif /* _FFR_HANDLE_ISO8859_GECOS */
|
||||
#if _FFR_HDR_TYPE
|
||||
/* Set 'h' in {addr_type} for headers. */
|
||||
"_FFR_HDR_TYPE",
|
||||
#endif /* _FFR_HDR_TYPE */
|
||||
#if _FFR_HPUX_NSSWITCH
|
||||
/* Use nsswitch on HP-UX */
|
||||
"_FFR_HPUX_NSSWITCH",
|
||||
#endif /* _FFR_HPUX_NSSWITCH */
|
||||
#if _FFR_IGNORE_EXT_ON_HELO
|
||||
/* Ignore extensions offered in response to HELO */
|
||||
"_FFR_IGNORE_EXT_ON_HELO",
|
||||
#endif /* _FFR_IGNORE_EXT_ON_HELO */
|
||||
#if _FFR_LDAP_RECURSION
|
||||
/* Support LDAP recursion in LDAP responses */
|
||||
/* Andrew Baucom */
|
||||
"_FFR_LDAP_RECURSION",
|
||||
#endif /* _FFR_LDAP_RECURSION */
|
||||
#if _FFR_LDAP_SETVERSION
|
||||
/* New LDAP map option for setting LDAP protocol version */
|
||||
"_FFR_LDAP_SETVERSION",
|
||||
#endif /* _FFR_LDAP_SETVERSION */
|
||||
#if _FFR_LDAP_URI
|
||||
/* Support LDAP URI form of specifying host/port (and allows ldaps) */
|
||||
"_FFR_LDAP_URI",
|
||||
#endif /* _FFR_LDAP_URI */
|
||||
#if _FFR_MAX_FORWARD_ENTRIES
|
||||
/* Try to limit number of .forward entries */
|
||||
/* (doesn't work) */
|
||||
/* Randall S. Winchester of the University of Maryland */
|
||||
"_FFR_MAX_FORWARD_ENTRIES",
|
||||
#endif /* _FFR_MAX_FORWARD_ENTRIES */
|
||||
#if MILTER
|
||||
# if _FFR_MILTER_421
|
||||
/* If a filter returns 421, close the SMTP connection */
|
||||
"_FFR_MILTER_421",
|
||||
# endif /* _FFR_MILTER_421 */
|
||||
# if _FFR_MILTER_PERDAEMON
|
||||
/* Per DaemonPortOptions InputMailFilter lists */
|
||||
"_FFR_MILTER_PERDAEMON",
|
||||
# endif /* _FFR_MILTER_PERDAEMON */
|
||||
#endif /* MILTER */
|
||||
#if _FFR_NODELAYDSN_ON_HOLD
|
||||
/* Do not issue a DELAY DSN for mailers that use the hold flag. */
|
||||
/* Steven Pitzl */
|
||||
"_FFR_NODELAYDSN_ON_HOLD",
|
||||
#endif /* _FFR_NODELAYDSN_ON_HOLD */
|
||||
#if _FFR_NO_PIPE
|
||||
/* Disable PIPELINING, delay client if used. */
|
||||
"_FFR_NO_PIPE",
|
||||
#endif /* _FFR_NO_PIPE */
|
||||
#if _FFR_QUARANTINE
|
||||
/* Quarantine items in the queue */
|
||||
"_FFR_QUARANTINE",
|
||||
#endif /* _FFR_QUARANTINE */
|
||||
#if _FFR_QUEUEDELAY
|
||||
/* Exponential queue delay; disabled in 8.13 since it isn't used. */
|
||||
"_FFR_QUEUEDELAY",
|
||||
#endif /* _FFR_QUEUEDELAY */
|
||||
#if _FFR_QUEUE_GROUP_SORTORDER
|
||||
/* Allow QueueSortOrder per queue group. */
|
||||
/* XXX: Still need to actually use qgrp->qg_sortorder */
|
||||
"_FFR_QUEUE_GROUP_SORTORDER",
|
||||
#endif /* _FFR_QUEUE_GROUP_SORTORDER */
|
||||
#if _FFR_QUEUE_MACRO
|
||||
/* Define {queue} macro. */
|
||||
"_FFR_QUEUE_MACRO",
|
||||
#endif /* _FFR_QUEUE_MACRO */
|
||||
#if _FFR_QUEUERETURN_DSN
|
||||
/*
|
||||
** Provide an option for different Timeout.queue{warn,return} for
|
||||
** DSN messages. These days, queues are filled with bounces for
|
||||
** spam that will never make it to the sender and therefore slow
|
||||
** down queue runs until they timeout.
|
||||
*/
|
||||
|
||||
"_FFR_QUEUERETURN_DSN",
|
||||
#endif /* _FFR_QUEUERETURN_DSN */
|
||||
#if _FFR_QUEUE_RUN_PARANOIA
|
||||
/* Additional checks when doing queue runs. */
|
||||
"_FFR_QUEUE_RUN_PARANOIA",
|
||||
#endif /* _FFR_QUEUE_RUN_PARANOIA */
|
||||
#if _FFR_QUEUE_SCHED_DBG
|
||||
/* Debug output for the queue scheduler. */
|
||||
"_FFR_QUEUE_SCHED_DBG",
|
||||
#endif /* _FFR_QUEUE_SCHED_DBG */
|
||||
#if _FFR_REDIRECTEMPTY
|
||||
/*
|
||||
** envelope <> can't be sent to mailing lists, only owner-
|
||||
** send spam of this type to owner- of the list
|
||||
** ---- to stop spam from going to mailing lists.
|
||||
*/
|
||||
|
||||
"_FFR_REDIRECTEMPTY",
|
||||
#endif /* _FFR_REDIRECTEMPTY */
|
||||
#if _FFR_REJECT_LOG
|
||||
/* Log when we start/stop rejecting connections due to load, etc */
|
||||
"_FFR_REJECT_LOG",
|
||||
#endif /* _FFR_REJECT_LOG */
|
||||
#if _FFR_REQ_DIR_FSYNC_OPT
|
||||
/* Add cf option to fsync() directories */
|
||||
"_FFR_REQ_DIR_FSYNC_OPT",
|
||||
#endif /* _FFR_REQ_DIR_FSYNC_OPT */
|
||||
#if _FFR_RESET_MACRO_GLOBALS
|
||||
/* Allow macro 'j' to be set dynamically via rulesets. */
|
||||
"_FFR_RESET_MACRO_GLOBALS",
|
||||
#endif /* _FFR_RESET_MACRO_GLOBALS */
|
||||
#if _FFR_RESPOND_ALL
|
||||
/* in vacation */
|
||||
/* in vacation: respond to every message, not just once per interval */
|
||||
"_FFR_RESPOND_ALL",
|
||||
#endif /* _FFR_RESPOND_ALL */
|
||||
#if _FFR_RHS
|
||||
/* Random shuffle for queue sorting. */
|
||||
"_FFR_RHS",
|
||||
#endif /* _FFR_RHS */
|
||||
#if _FFR_SASL_OPT_M
|
||||
/* Support SASL's SASL_SEC_MUTUAL_AUTH option */
|
||||
"_FFR_SASL_OPT_M",
|
||||
#endif /* _FFR_SASL_OPT_M */
|
||||
#if _FFR_SELECT_SHM
|
||||
/* Auto-select of shared memory key */
|
||||
"_FFR_SELECT_SHM",
|
||||
#endif /* _FFR_SELECT_SHM */
|
||||
#if _FFR_SHM_STATUS
|
||||
/* Donated code (unused). */
|
||||
"_FFR_SHM_STATUS",
|
||||
#endif /* _FFR_SHM_STATUS */
|
||||
#if _FFR_SMFI_OPENSOCKET
|
||||
/* libmilter: smfi_opensocket() to force the socket open early */
|
||||
"_FFR_SMFI_OPENSOCKET",
|
||||
#endif /* _FFR_SMFI_OPENSOCKET */
|
||||
#if _FFR_SMTP_SSL
|
||||
/* Support for smtps (SMTP over SSL) */
|
||||
"_FFR_SMTP_SSL",
|
||||
#endif /* _FFR_SMTP_SSL */
|
||||
#if _FFR_SOFT_BOUNCE
|
||||
/* Turn all errors into temporary errors. */
|
||||
"_FFR_SOFT_BOUNCE",
|
||||
#endif /* _FFR_SOFT_BOUNCE */
|
||||
#if _FFR_SPT_ALIGN
|
||||
/*
|
||||
** It looks like the Compaq Tru64 5.1A now aligns argv and envp to 64
|
||||
** bit alignment, so unless each piece of argv and envp is a multiple
|
||||
** of 8 bytes (including terminating NULL), initsetproctitle() won't
|
||||
** use any of the space beyond argv[0]. Be sure to set SPT_ALIGN_SIZE
|
||||
** if you use this FFR.
|
||||
*/
|
||||
|
||||
/* Chris Adams of HiWAAY Informations Services */
|
||||
"_FFR_SPT_ALIGN",
|
||||
#endif /* _FFR_SPT_ALIGN */
|
||||
#if _FFR_STRIPBACKSL
|
||||
/*
|
||||
** Strip backslash from addresses (so sender doesn't
|
||||
** decide to ignore forward)
|
||||
*/
|
||||
|
||||
"_FFR_STRIPBACKSL",
|
||||
#endif /* _FFR_STRIPBACKSL */
|
||||
#if _FFR_TIMERS
|
||||
/* Donated code (unused). */
|
||||
"_FFR_TIMERS",
|
||||
#endif /* _FFR_TIMERS */
|
||||
#if _FFR_TLS_1
|
||||
/* More STARTTLS options, e.g., secondary certs. */
|
||||
"_FFR_TLS_1",
|
||||
#endif /* _FFR_TLS_1 */
|
||||
#if _FFR_TRUSTED_QF
|
||||
/*
|
||||
** If we don't own the file mark it as unsafe.
|
||||
** However, allow TrustedUser to own it as well
|
||||
** in case TrustedUser manipulates the queue.
|
||||
*/
|
||||
|
||||
"_FFR_TRUSTED_QF",
|
||||
#endif /* _FFR_TRUSTED_QF */
|
||||
#if _FFR_USE_SETLOGIN
|
||||
/* Use setlogin() */
|
||||
/* Peter Philipp */
|
||||
"_FFR_USE_SETLOGIN",
|
||||
#endif /* _FFR_USE_SETLOGIN */
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include <sendmail.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
SM_RCSID("@(#)$Id: deliver.c,v 8.940.2.15 2003/02/07 17:57:43 ca Exp $")
|
||||
SM_RCSID("@(#)$Id: deliver.c,v 8.940.2.18 2003/03/28 17:34:39 ca Exp $")
|
||||
|
||||
#if HASSETUSERCONTEXT
|
||||
# include <login_cap.h>
|
||||
@ -1158,7 +1158,7 @@ coloncmp(a, b)
|
||||
/* Need to account for IPv6 bracketed addresses */
|
||||
if (*a == '[')
|
||||
braclev++;
|
||||
else if (*a == '[' && braclev > 0)
|
||||
else if (*a == ']' && braclev > 0)
|
||||
braclev--;
|
||||
else if (*a == ':' && braclev <= 0)
|
||||
{
|
||||
@ -1626,7 +1626,7 @@ deliver(e, firstto)
|
||||
}
|
||||
#if _FFR_STRIPBACKSL
|
||||
/*
|
||||
** Strip one leading backslash if requesting and the
|
||||
** Strip one leading backslash if requested and the
|
||||
** next character is alphanumerical (the latter can
|
||||
** probably relaxed a bit, see RFC2821).
|
||||
*/
|
||||
@ -4719,7 +4719,11 @@ putbody(mci, e, separator)
|
||||
{
|
||||
pos += bp - buf;
|
||||
if (c != '\r')
|
||||
{
|
||||
SM_ASSERT(pbp < peekbuf +
|
||||
sizeof(peekbuf));
|
||||
*pbp++ = c;
|
||||
}
|
||||
}
|
||||
|
||||
bp = buf;
|
||||
@ -4759,6 +4763,7 @@ putbody(mci, e, separator)
|
||||
}
|
||||
|
||||
/* had a naked carriage return */
|
||||
SM_ASSERT(pbp < peekbuf + sizeof(peekbuf));
|
||||
*pbp++ = c;
|
||||
c = '\r';
|
||||
ostate = OS_INLINE;
|
||||
@ -4787,7 +4792,11 @@ putbody(mci, e, separator)
|
||||
else if ((d = sm_io_getc(e->e_dfp,
|
||||
SM_TIME_DEFAULT))
|
||||
!= SM_IO_EOF)
|
||||
{
|
||||
SM_ASSERT(pbp < peekbuf +
|
||||
sizeof(peekbuf));
|
||||
*pbp++ = d;
|
||||
}
|
||||
|
||||
if (d == '\n' || d == SM_IO_EOF)
|
||||
{
|
||||
@ -4837,6 +4846,8 @@ putbody(mci, e, separator)
|
||||
mci->mci_mailer->m_eol);
|
||||
}
|
||||
ostate = OS_HEAD;
|
||||
SM_ASSERT(pbp < peekbuf +
|
||||
sizeof(peekbuf));
|
||||
*pbp++ = c;
|
||||
continue;
|
||||
}
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include <sendmail.h>
|
||||
|
||||
SM_RCSID("@(#)$Id: headers.c,v 8.266.4.4 2003/01/18 00:41:48 gshapiro Exp $")
|
||||
SM_RCSID("@(#)$Id: headers.c,v 8.266.4.5 2003/03/12 22:42:52 gshapiro Exp $")
|
||||
|
||||
static size_t fix_mime_header __P((HDR *, ENVELOPE *));
|
||||
static int priencode __P((char *));
|
||||
@ -771,6 +771,12 @@ eatheader(e, full, log)
|
||||
e->e_timeoutclass = TOC_NONURGENT;
|
||||
}
|
||||
|
||||
#if _FFR_QUEUERETURN_DSN
|
||||
/* If no timeoutclass picked and it's a DSN, use that timeoutclass */
|
||||
if (e->e_timeoutclass == TOC_NORMAL && bitset(EF_RESPONSE, e->e_flags))
|
||||
e->e_timeoutclass = TOC_DSN;
|
||||
#endif /* _FFR_QUEUERETURN_DSN */
|
||||
|
||||
/* date message originated */
|
||||
p = hvalue("posted-date", e->e_header);
|
||||
if (p == NULL)
|
||||
|
@ -25,7 +25,7 @@ SM_UNUSED(static char copyright[]) =
|
||||
The Regents of the University of California. All rights reserved.\n";
|
||||
#endif /* ! lint */
|
||||
|
||||
SM_RCSID("@(#)$Id: main.c,v 8.887.2.20 2003/02/07 17:57:44 ca Exp $")
|
||||
SM_RCSID("@(#)$Id: main.c,v 8.887.2.22 2003/03/06 18:38:08 ca Exp $")
|
||||
|
||||
|
||||
#if NETINET || NETINET6
|
||||
@ -128,6 +128,7 @@ int SyslogPrefixLen; /* estimated length of syslog prefix */
|
||||
{ \
|
||||
if (extraprivs && \
|
||||
OpMode != MD_DELIVER && OpMode != MD_SMTP && \
|
||||
OpMode != MD_ARPAFTP && \
|
||||
OpMode != MD_VERIFY && OpMode != MD_TEST) \
|
||||
{ \
|
||||
(void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, \
|
||||
@ -392,6 +393,7 @@ main(argc, argv, envp)
|
||||
# endif /* ! OPTIONS */
|
||||
#endif /* _FFR_QUARANTINE */
|
||||
|
||||
/* Set to 0 to allow -b; need to check optarg before using it! */
|
||||
opterr = 0;
|
||||
while ((j = getopt(argc, argv, OPTIONS)) != -1)
|
||||
{
|
||||
@ -442,6 +444,13 @@ main(argc, argv, envp)
|
||||
break;
|
||||
|
||||
case 'L':
|
||||
if (optarg == NULL)
|
||||
{
|
||||
(void) sm_io_fprintf(smioout, SM_TIME_DEFAULT,
|
||||
"option requires an argument -- '%c'",
|
||||
(char) j);
|
||||
return EX_USAGE;
|
||||
}
|
||||
j = SM_MIN(strlen(optarg), 24) + 1;
|
||||
sysloglabel = xalloc(j);
|
||||
(void) sm_strlcpy(sysloglabel, optarg, j);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999-2002 Sendmail, Inc. and its suppliers.
|
||||
* Copyright (c) 1999-2003 Sendmail, Inc. and its suppliers.
|
||||
* All rights reserved.
|
||||
*
|
||||
* By using this file, you agree to the terms and conditions set
|
||||
@ -10,7 +10,7 @@
|
||||
|
||||
#include <sendmail.h>
|
||||
|
||||
SM_RCSID("@(#)$Id: milter.c,v 8.197.2.6 2002/12/30 05:54:00 ca Exp $")
|
||||
SM_RCSID("@(#)$Id: milter.c,v 8.197.2.7 2003/03/22 18:54:25 ca Exp $")
|
||||
|
||||
#if MILTER
|
||||
# include <libmilter/mfapi.h>
|
||||
@ -46,8 +46,18 @@ static char *MilterEnvRcptMacros[MAXFILTERMACROS + 1];
|
||||
}
|
||||
|
||||
# if _FFR_QUARANTINE
|
||||
# define MILTER_CHECK_ERROR(action) \
|
||||
if (tTd(71, 101)) \
|
||||
# define MILTER_CHECK_ERROR(initial, action) \
|
||||
if (!initial && tTd(71, 100)) \
|
||||
{ \
|
||||
if (e->e_quarmsg == NULL) \
|
||||
{ \
|
||||
e->e_quarmsg = sm_rpool_strdup_x(e->e_rpool, \
|
||||
"filter failure"); \
|
||||
macdefine(&e->e_macro, A_PERM, macid("{quarantine}"), \
|
||||
e->e_quarmsg); \
|
||||
} \
|
||||
} \
|
||||
else if (tTd(71, 101)) \
|
||||
{ \
|
||||
if (e->e_quarmsg == NULL) \
|
||||
{ \
|
||||
@ -64,7 +74,7 @@ static char *MilterEnvRcptMacros[MAXFILTERMACROS + 1];
|
||||
else \
|
||||
action;
|
||||
# else /* _FFR_QUARANTINE */
|
||||
# define MILTER_CHECK_ERROR(action) \
|
||||
# define MILTER_CHECK_ERROR(initial, action) \
|
||||
if (bitnset(SMF_TEMPFAIL, m->mf_flags)) \
|
||||
*state = SMFIR_TEMPFAIL; \
|
||||
else if (bitnset(SMF_REJECT, m->mf_flags)) \
|
||||
@ -1915,7 +1925,7 @@ milter_send_command(m, command, data, sz, e, state)
|
||||
m->mf_timeout[SMFTO_WRITE], e);
|
||||
if (m->mf_state == SMFS_ERROR)
|
||||
{
|
||||
MILTER_CHECK_ERROR(return NULL);
|
||||
MILTER_CHECK_ERROR(false, return NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -1924,7 +1934,7 @@ milter_send_command(m, command, data, sz, e, state)
|
||||
m->mf_timeout[SMFTO_READ], e);
|
||||
if (m->mf_state == SMFS_ERROR)
|
||||
{
|
||||
MILTER_CHECK_ERROR(return NULL);
|
||||
MILTER_CHECK_ERROR(false, return NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -2043,7 +2053,7 @@ milter_command(command, data, sz, macros, e, state)
|
||||
/* previous problem? */
|
||||
if (m->mf_state == SMFS_ERROR)
|
||||
{
|
||||
MILTER_CHECK_ERROR(continue);
|
||||
MILTER_CHECK_ERROR(false, continue);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2058,7 +2068,7 @@ milter_command(command, data, sz, macros, e, state)
|
||||
milter_send_macros(m, macros, command, e);
|
||||
if (m->mf_state == SMFS_ERROR)
|
||||
{
|
||||
MILTER_CHECK_ERROR(continue);
|
||||
MILTER_CHECK_ERROR(false, continue);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -3062,7 +3072,7 @@ milter_init(e, state)
|
||||
m->mf_sock = milter_open(m, false, e);
|
||||
if (m->mf_state == SMFS_ERROR)
|
||||
{
|
||||
MILTER_CHECK_ERROR(continue);
|
||||
MILTER_CHECK_ERROR(true, continue);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -3084,7 +3094,7 @@ milter_init(e, state)
|
||||
|
||||
/* if negotation failure, close socket */
|
||||
milter_error(m, e);
|
||||
MILTER_CHECK_ERROR(continue);
|
||||
MILTER_CHECK_ERROR(true, continue);
|
||||
}
|
||||
if (MilterLogLevel > 9)
|
||||
sm_syslog(LOG_INFO, e->e_id,
|
||||
@ -3541,7 +3551,7 @@ milter_data(e, state)
|
||||
/* previous problem? */
|
||||
if (m->mf_state == SMFS_ERROR)
|
||||
{
|
||||
MILTER_CHECK_ERROR(continue);
|
||||
MILTER_CHECK_ERROR(false, continue);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -3602,7 +3612,7 @@ milter_data(e, state)
|
||||
"milter_data(%s): EOM ACK/NAK timeout",
|
||||
m->mf_name);
|
||||
milter_error(m, e);
|
||||
MILTER_CHECK_ERROR(break);
|
||||
MILTER_CHECK_ERROR(false, break);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -3790,7 +3800,7 @@ milter_data(e, state)
|
||||
|
||||
if (m->mf_state == SMFS_ERROR)
|
||||
{
|
||||
MILTER_CHECK_ERROR(continue);
|
||||
MILTER_CHECK_ERROR(false, continue);
|
||||
goto finishup;
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include <sendmail.h>
|
||||
|
||||
SM_RCSID("@(#)$Id: parseaddr.c,v 8.359.2.4 2003/01/18 00:41:48 gshapiro Exp $")
|
||||
SM_RCSID("@(#)$Id: parseaddr.c,v 8.359.2.6 2003/03/27 02:39:53 ca Exp $")
|
||||
|
||||
static void allocaddr __P((ADDRESS *, int, char *, ENVELOPE *));
|
||||
static int callsubr __P((char**, int, ENVELOPE *));
|
||||
@ -608,7 +608,7 @@ unsigned char TokTypeNoC[256] =
|
||||
};
|
||||
|
||||
|
||||
#define NOCHAR -1 /* signal nothing in lookahead token */
|
||||
#define NOCHAR (-1) /* signal nothing in lookahead token */
|
||||
|
||||
char **
|
||||
prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab)
|
||||
@ -694,6 +694,7 @@ prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab)
|
||||
/* see if there is room */
|
||||
if (q >= &pvpbuf[pvpbsize - 5])
|
||||
{
|
||||
addrtoolong:
|
||||
usrerr("553 5.1.1 Address too long");
|
||||
if (strlen(addr) > MAXNAME)
|
||||
addr[MAXNAME] = '\0';
|
||||
@ -705,11 +706,15 @@ prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab)
|
||||
}
|
||||
|
||||
/* squirrel it away */
|
||||
#if !ALLOW_255
|
||||
if ((char) c == (char) -1 && !tTd(82, 101))
|
||||
c &= 0x7f;
|
||||
#endif /* !ALLOW_255 */
|
||||
*q++ = c;
|
||||
}
|
||||
|
||||
/* read a new input character */
|
||||
c = *p++;
|
||||
c = (*p++) & 0x00ff;
|
||||
if (c == '\0')
|
||||
{
|
||||
/* diagnose and patch up bad syntax */
|
||||
@ -764,6 +769,9 @@ prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab)
|
||||
}
|
||||
else if (c != '!' || state == QST)
|
||||
{
|
||||
/* see if there is room */
|
||||
if (q >= &pvpbuf[pvpbsize - 5])
|
||||
goto addrtoolong;
|
||||
*q++ = '\\';
|
||||
continue;
|
||||
}
|
||||
@ -849,6 +857,9 @@ prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab)
|
||||
/* new token */
|
||||
if (tok != q)
|
||||
{
|
||||
/* see if there is room */
|
||||
if (q >= &pvpbuf[pvpbsize - 5])
|
||||
goto addrtoolong;
|
||||
*q++ = '\0';
|
||||
if (tTd(22, 36))
|
||||
{
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include <sendmail.h>
|
||||
|
||||
SM_RCSID("@(#)$Id: queue.c,v 8.863.2.28 2003/02/11 17:17:22 ca Exp $")
|
||||
SM_RCSID("@(#)$Id: queue.c,v 8.863.2.30 2003/03/20 00:20:16 ca Exp $")
|
||||
|
||||
#include <dirent.h>
|
||||
|
||||
@ -32,11 +32,11 @@ SM_RCSID("@(#)$Id: queue.c,v 8.863.2.28 2003/02/11 17:17:22 ca Exp $")
|
||||
#if _FFR_QUEUEDELAY
|
||||
# define QF_VERSION 7 /* version number of this queue format */
|
||||
static time_t queuedelay __P((ENVELOPE *));
|
||||
#define queuedelay_qfver_unsupported(qfver) false
|
||||
# define queuedelay_qfver_unsupported(qfver) false
|
||||
#else /* _FFR_QUEUEDELAY */
|
||||
# define QF_VERSION 6 /* version number of this queue format */
|
||||
# define queuedelay(e) MinQueueAge
|
||||
#define queuedelay_qfver_unsupported(qfver) ((qfver) == 5 || (qfver) == 7)
|
||||
# define queuedelay_qfver_unsupported(qfver) ((qfver) == 5 || (qfver) == 7)
|
||||
#endif /* _FFR_QUEUEDELAY */
|
||||
#if _FFR_QUARANTINE
|
||||
static char queue_letter __P((ENVELOPE *, int));
|
||||
@ -219,7 +219,7 @@ int *PRSATmpCnt;
|
||||
/* offset for queue_shm */
|
||||
# define OFF_QUEUE_SHM(p) (((char *) (p)) + SHM_OFF_HEAD + sizeof(FileSys) + sizeof(int) * 2)
|
||||
|
||||
#define QSHM_ENTRIES(i) QShm[i].qs_entries
|
||||
# define QSHM_ENTRIES(i) QShm[i].qs_entries
|
||||
|
||||
/* basic size of shared memory segment */
|
||||
# define SM_T_SIZE (SHM_OFF_HEAD + sizeof(FileSys) + sizeof(int) * 2)
|
||||
@ -3316,8 +3316,8 @@ strrev(fwd)
|
||||
|
||||
#if _FFR_RHS
|
||||
|
||||
#define NASCII 128
|
||||
#define NCHAR 256
|
||||
# define NASCII 128
|
||||
# define NCHAR 256
|
||||
|
||||
static unsigned char ShuffledAlphabet[NCHAR];
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include <sendmail.h>
|
||||
|
||||
SM_RCSID("@(#)$Id: readcf.c,v 8.607.2.7 2002/11/10 19:13:11 ca Exp $")
|
||||
SM_RCSID("@(#)$Id: readcf.c,v 8.607.2.8 2003/03/12 22:42:52 gshapiro Exp $")
|
||||
|
||||
#if NETINET || NETINET6
|
||||
# include <arpa/inet.h>
|
||||
@ -3976,6 +3976,12 @@ static struct timeoutinfo
|
||||
{ "starttls", TO_STARTTLS },
|
||||
#define TO_ACONNECT 0x23
|
||||
{ "aconnect", TO_ACONNECT },
|
||||
#if _FFR_QUEUERETURN_DSN
|
||||
# define TO_QUEUEWARN_DSN 0x24
|
||||
{ "queuewarn.dsn", TO_QUEUEWARN_DSN },
|
||||
# define TO_QUEUERETURN_DSN 0x25
|
||||
{ "queuereturn.dsn", TO_QUEUERETURN_DSN },
|
||||
#endif /* _FFR_QUEUERETURN_DSN */
|
||||
{ NULL, 0 },
|
||||
};
|
||||
|
||||
@ -4094,6 +4100,9 @@ settimeout(name, val, sticky)
|
||||
TimeOuts.to_q_warning[TOC_NORMAL] = toval;
|
||||
TimeOuts.to_q_warning[TOC_URGENT] = toval;
|
||||
TimeOuts.to_q_warning[TOC_NONURGENT] = toval;
|
||||
#if _FFR_QUEUERETURN_DSN
|
||||
TimeOuts.to_q_warning[TOC_DSN] = toval;
|
||||
#endif /* _FFR_QUEUERETURN_DSN */
|
||||
addopts = 2;
|
||||
break;
|
||||
|
||||
@ -4112,11 +4121,21 @@ settimeout(name, val, sticky)
|
||||
TimeOuts.to_q_warning[TOC_NONURGENT] = toval;
|
||||
break;
|
||||
|
||||
#if _FFR_QUEUERETURN_DSN
|
||||
case TO_QUEUEWARN_DSN:
|
||||
toval = convtime(val, 'h');
|
||||
TimeOuts.to_q_warning[TOC_DSN] = toval;
|
||||
break;
|
||||
#endif /* _FFR_QUEUERETURN_DSN */
|
||||
|
||||
case TO_QUEUERETURN:
|
||||
toval = convtime(val, 'd');
|
||||
TimeOuts.to_q_return[TOC_NORMAL] = toval;
|
||||
TimeOuts.to_q_return[TOC_URGENT] = toval;
|
||||
TimeOuts.to_q_return[TOC_NONURGENT] = toval;
|
||||
#if _FFR_QUEUERETURN_DSN
|
||||
TimeOuts.to_q_return[TOC_DSN] = toval;
|
||||
#endif /* _FFR_QUEUERETURN_DSN */
|
||||
addopts = 2;
|
||||
break;
|
||||
|
||||
@ -4135,6 +4154,13 @@ settimeout(name, val, sticky)
|
||||
TimeOuts.to_q_return[TOC_NONURGENT] = toval;
|
||||
break;
|
||||
|
||||
#if _FFR_QUEUERETURN_DSN
|
||||
case TO_QUEUERETURN_DSN:
|
||||
toval = convtime(val, 'd');
|
||||
TimeOuts.to_q_return[TOC_DSN] = toval;
|
||||
break;
|
||||
#endif /* _FFR_QUEUERETURN_DSN */
|
||||
|
||||
case TO_HOSTSTATUS:
|
||||
MciInfoTimeout = toval;
|
||||
break;
|
||||
|
@ -48,7 +48,7 @@
|
||||
|
||||
#ifdef _DEFINE
|
||||
# ifndef lint
|
||||
SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.h,v 8.919.2.16 2003/01/18 00:41:50 gshapiro Exp $";
|
||||
SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.h,v 8.919.2.17 2003/03/12 22:42:52 gshapiro Exp $";
|
||||
# endif /* ! lint */
|
||||
#endif /* _DEFINE */
|
||||
|
||||
@ -2021,6 +2021,9 @@ EXTERN struct
|
||||
#define TOC_NORMAL 0 /* normal delivery */
|
||||
#define TOC_URGENT 1 /* urgent delivery */
|
||||
#define TOC_NONURGENT 2 /* non-urgent delivery */
|
||||
#if _FFR_QUEUERETURN_DSN
|
||||
# define TOC_DSN 3 /* DSN delivery */
|
||||
#endif /* _FFR_QUEUERETURN_DSN */
|
||||
|
||||
/* resolver timeout specifiers */
|
||||
#define RES_TO_FIRST 0 /* first attempt */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2002 Sendmail, Inc. and its suppliers.
|
||||
* Copyright (c) 2000-2003 Sendmail, Inc. and its suppliers.
|
||||
* All rights reserved.
|
||||
*
|
||||
* By using this file, you agree to the terms and conditions set
|
||||
@ -46,7 +46,7 @@
|
||||
# if NAMED_BIND
|
||||
# include "sm_resolve.h"
|
||||
|
||||
SM_RCSID("$Id: sm_resolve.c,v 8.24.4.6 2002/06/25 04:22:41 ca Exp $")
|
||||
SM_RCSID("$Id: sm_resolve.c,v 8.24.4.7 2003/03/22 22:55:37 ca Exp $")
|
||||
|
||||
static struct stot
|
||||
{
|
||||
@ -172,10 +172,10 @@ parse_dns_reply(data, len)
|
||||
DNS_REPLY_T *r;
|
||||
RESOURCE_RECORD_T **rr;
|
||||
|
||||
r = (DNS_REPLY_T *) xalloc(sizeof(*r));
|
||||
memset(r, 0, sizeof(*r));
|
||||
r = (DNS_REPLY_T *) sm_malloc(sizeof(*r));
|
||||
if (r == NULL)
|
||||
return NULL;
|
||||
memset(r, 0, sizeof(*r));
|
||||
|
||||
p = data;
|
||||
|
||||
@ -227,12 +227,13 @@ parse_dns_reply(data, len)
|
||||
dns_free_data(r);
|
||||
return NULL;
|
||||
}
|
||||
*rr = (RESOURCE_RECORD_T *) xalloc(sizeof(**rr));
|
||||
*rr = (RESOURCE_RECORD_T *) sm_malloc(sizeof(**rr));
|
||||
if (*rr == NULL)
|
||||
{
|
||||
dns_free_data(r);
|
||||
return NULL;
|
||||
}
|
||||
memset(*rr, 0, sizeof(**rr));
|
||||
(*rr)->rr_domain = sm_strdup(host);
|
||||
if ((*rr)->rr_domain == NULL)
|
||||
{
|
||||
@ -274,7 +275,7 @@ parse_dns_reply(data, len)
|
||||
}
|
||||
l = strlen(host) + 1;
|
||||
(*rr)->rr_u.rr_mx = (MX_RECORD_T *)
|
||||
xalloc(sizeof(*((*rr)->rr_u.rr_mx)) + l);
|
||||
sm_malloc(sizeof(*((*rr)->rr_u.rr_mx)) + l);
|
||||
if ((*rr)->rr_u.rr_mx == NULL)
|
||||
{
|
||||
dns_free_data(r);
|
||||
@ -295,7 +296,7 @@ parse_dns_reply(data, len)
|
||||
}
|
||||
l = strlen(host) + 1;
|
||||
(*rr)->rr_u.rr_srv = (SRV_RECORDT_T*)
|
||||
xalloc(sizeof(*((*rr)->rr_u.rr_srv)) + l);
|
||||
sm_malloc(sizeof(*((*rr)->rr_u.rr_srv)) + l);
|
||||
if ((*rr)->rr_u.rr_srv == NULL)
|
||||
{
|
||||
dns_free_data(r);
|
||||
@ -330,7 +331,7 @@ parse_dns_reply(data, len)
|
||||
dns_free_data(r);
|
||||
return NULL;
|
||||
}
|
||||
(*rr)->rr_u.rr_txt = (char *) xalloc(txtlen + 1);
|
||||
(*rr)->rr_u.rr_txt = (char *) sm_malloc(txtlen + 1);
|
||||
if ((*rr)->rr_u.rr_txt == NULL)
|
||||
{
|
||||
dns_free_data(r);
|
||||
@ -341,8 +342,8 @@ parse_dns_reply(data, len)
|
||||
break;
|
||||
|
||||
default:
|
||||
(*rr)->rr_u.rr_data = (unsigned char*) xalloc(size);
|
||||
if (size != 0 && (*rr)->rr_u.rr_data == NULL)
|
||||
(*rr)->rr_u.rr_data = (unsigned char*) sm_malloc(size);
|
||||
if ((*rr)->rr_u.rr_data == NULL)
|
||||
{
|
||||
dns_free_data(r);
|
||||
return NULL;
|
||||
|
@ -16,7 +16,7 @@
|
||||
# include <libmilter/mfdef.h>
|
||||
#endif /* MILTER */
|
||||
|
||||
SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.829.2.21 2003/01/15 19:17:14 ca Exp $")
|
||||
SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.829.2.22 2003/02/19 02:45:40 ca Exp $")
|
||||
|
||||
#if SASL || STARTTLS
|
||||
# include <sys/time.h>
|
||||
@ -517,8 +517,6 @@ smtp(nullserver, d_flags, e)
|
||||
}
|
||||
|
||||
hostname = macvalue('j', e);
|
||||
|
||||
|
||||
#if SASL
|
||||
sasl_ok = bitset(SRV_OFFER_AUTH, features);
|
||||
n_mechs = 0;
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
#include <sendmail.h>
|
||||
|
||||
SM_RCSID("@(#)$Id: tls.c,v 8.79.4.2 2003/01/23 23:16:24 ca Exp $")
|
||||
SM_RCSID("@(#)$Id: tls.c,v 8.79.4.4 2003/03/20 00:03:42 ca Exp $")
|
||||
|
||||
#if STARTTLS
|
||||
# include <openssl/err.h>
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers.
|
||||
* Copyright (c) 1998-2003 Sendmail, Inc. and its suppliers.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
|
||||
* Copyright (c) 1988, 1993
|
||||
@ -13,7 +13,7 @@
|
||||
|
||||
#include <sendmail.h>
|
||||
|
||||
SM_RCSID("@(#)$Id: usersmtp.c,v 8.437.2.8 2002/12/12 17:40:07 ca Exp $")
|
||||
SM_RCSID("@(#)$Id: usersmtp.c,v 8.437.2.9 2003/03/15 23:57:52 gshapiro Exp $")
|
||||
|
||||
#include <sysexits.h>
|
||||
|
||||
@ -2823,6 +2823,7 @@ smtpgetstat(m, mci, e)
|
||||
ENVELOPE *e;
|
||||
{
|
||||
int r;
|
||||
int off;
|
||||
int status, xstat;
|
||||
char *enhsc;
|
||||
|
||||
@ -2844,13 +2845,12 @@ smtpgetstat(m, mci, e)
|
||||
else
|
||||
status = EX_PROTOCOL;
|
||||
if (bitset(MCIF_ENHSTAT, mci->mci_flags) &&
|
||||
(r = isenhsc(SmtpReplyBuffer + 4, ' ')) > 0)
|
||||
r += 5;
|
||||
(off = isenhsc(SmtpReplyBuffer + 4, ' ')) > 0)
|
||||
off += 5;
|
||||
else
|
||||
r = 4;
|
||||
e->e_statmsg = sm_rpool_strdup_x(e->e_rpool, &SmtpReplyBuffer[r]);
|
||||
mci_setstat(mci, xstat, ENHSCN(enhsc, smtptodsn(r)),
|
||||
SmtpReplyBuffer);
|
||||
off = 4;
|
||||
e->e_statmsg = sm_rpool_strdup_x(e->e_rpool, &SmtpReplyBuffer[off]);
|
||||
mci_setstat(mci, xstat, ENHSCN(enhsc, smtptodsn(r)), SmtpReplyBuffer);
|
||||
if (LogLevel > 1 && status == EX_PROTOCOL)
|
||||
{
|
||||
sm_syslog(LOG_CRIT, e->e_id,
|
||||
|
@ -13,6 +13,6 @@
|
||||
|
||||
#include <sm/gen.h>
|
||||
|
||||
SM_RCSID("@(#)$Id: version.c,v 8.104.2.14 2003/01/15 17:55:43 ca Exp $")
|
||||
SM_RCSID("@(#)$Id: version.c,v 8.104.2.15 2003/03/19 21:19:53 ca Exp $")
|
||||
|
||||
char Version[] = "8.12.8";
|
||||
char Version[] = "8.12.9";
|
||||
|
Loading…
Reference in New Issue
Block a user