2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-31 14:17:41 +00:00

snapshot-19991219

This commit is contained in:
Wietse Venema
1999-12-19 00:00:00 -05:00
parent 1ca1119df9
commit 89d0723baf
13 changed files with 1518 additions and 761 deletions

View File

@@ -3298,7 +3298,7 @@ Apologies for any names omitted.
Bugfix: the local delivery agent's recipient duplicate
filter did not work when configured to use unlimited memory
(which is not a recommended setting). Patrik Rak @ein.cz.
(which is not a recommended setting). Patrik Rak @raxoft.cz.
19991125
@@ -3322,7 +3322,7 @@ Apologies for any names omitted.
now frees in-memory recipients as soon as a message is
delivered to one destination, rather than waiting until
all in-memory destinations of that message have been tried.
Patch by Patrik Rak @ ein.cz. Files: qmgr/qmgr_entry.c,
Patch by Patrik Rak @ raxoft.cz. Files: qmgr/qmgr_entry.c,
qmgr/qmgr_message.c.
Performance: when delivering mail to a huge list of
@@ -3346,7 +3346,7 @@ Apologies for any names omitted.
Bugfix: the local delivery agent would deliver to the user
instead of the .forward file when the .forward file was
already visited via some non-recursive path. Patch by Patrik
Rak @ ein.cz. Files: global/been_here.c, local/dotforward.c.
Rak @ raxoft.cz. Files: global/been_here.c, local/dotforward.c.
Robustness: attempt to deliver all addresses in the expansion
of an alias or .forward file, even when some addresses must
@@ -3381,8 +3381,8 @@ Apologies for any names omitted.
19991216
Feature: allow an empty inet_interfaces parameter, just
like an empty mydestination parameter. It's needed for a
true null client that delivers no mail locally at all.
like an empty mydestination parameter. It's needed for true
null clients and for firewalls that deliver no local mail.
Feature: "disable_vrfy_command = yes" disables some forms
of address harvesting used by spammers.
@@ -3409,4 +3409,21 @@ Apologies for any names omitted.
Feature: the sendmail -f option now understands '<user>'
and even understands address forms with RFC 822-style
comments.
19991217
Cleanup: no more UCE checks for VRFY commands.
19991218
Cleanup: INSTALL.sh produces relative symlinks, which is
necessary when install_root is not /.
19991219
Documentation: completely reorganized the FAQ and added
many new entries.
Cleanup: INSTALL.sh uses a configurable directory for
scratch files, so that it can install from a file system
that is not writable by the super-user.

View File

@@ -76,6 +76,7 @@ If your system is supported, it is one of
OPENSTEP 4.x
OSF1.V3 (Digital UNIX)
OSF1.V4 aka Digital UNIX V4
OSF1.V5 aka Digital UNIX V5
OpenBSD 2.x
Reliant UNIX 5.x
Rhapsody 5.x

View File

@@ -20,6 +20,8 @@ Before installing files, this script prompts you for some definitions.
Most definitions will be remembered, so you have to specify them
only once. All definitions have a reasonable default value.
tempdir - where to write scratch files
install_root - prefix for installed file names (for package building)
config_directory - directory with Postfix configuration files.
@@ -39,24 +41,40 @@ only once. All definitions have a reasonable default value.
EOF
# By now, shells must have functions. Ultrix users must use sh5 or lose.
# Apparently, some broken LINUX file utilities won't move symlinks across
# file systems. Upgrade to a better system. Don't waste my time.
# The following shell functions replace files/symlinks while minimizing
# the time that a file does not exist, and avoid copying over programs
# in order to not disturb running programs.
compare_or_replace() {
cmp $2 $3 >/dev/null 2>&1 || {
rm -f junk || exit 1
cp $2 junk || exit 1
mv -f junk $3 || exit 1
rm -f $tempdir/junk || exit 1
cp $2 $tempdir/junk || exit 1
chmod $1 $tempdir/junk || exit 1
mv -f $tempdir/junk $3 || exit 1
chmod $1 $3 || exit 1
}
}
compare_or_symlink() {
cmp $1 $2 >/dev/null 2>&1 || {
rm -f junk || exit 1
ln -s $1 junk || exit 1
mv -f junk $2 || exit 1
rm -f $tempdir/junk || exit 1
target=`echo $1 | sed '
s;^'$install_root';;
s;//;/;g
s;/\./;/;g
s;^/*;;
H
s;/[^/]*$;/;
s;[^/]*/;../;g
G
s/\n//
'`
ln -s $target $tempdir/junk || exit 1
mv -f $tempdir/junk $2 || {
echo Error: your mv command is unable to rename symlinks. 1>&2
echo If you run Linux, upgrade to GNU fileutils-4.0 or better. 1>&2
exit 1
}
}
}
@@ -74,8 +92,9 @@ case `echo -n` in
*) n=; c='\c';;
esac
# Default settings. These are clobbered by remembered settings.
# Default settings. Most are clobbered by remembered settings.
tempdir=`pwd`
install_root=/
config_directory=/etc/postfix
daemon_directory=/usr/libexec/postfix
@@ -90,7 +109,7 @@ manpages=/usr/local/man
# Find out the location of configuration files.
for name in install_root config_directory
for name in tempdir install_root config_directory
do
while :
do
@@ -105,11 +124,11 @@ done
# Sanity checks
for path in $install_root $config_directory
for path in $tempdir $install_root $config_directory
do
case $path in
/*) ;;
*) echo "$path should be an absolute path name" 1>&2; exit 1;;
*) echo Error: $path should be an absolute path name. 1>&2; exit 1;;
esac
done
@@ -157,29 +176,39 @@ do
case $path in
/*) ;;
no) ;;
*) echo "$path should be an absolute path name" 1>&2; exit 1;;
*) echo Error: $path should be an absolute path name. 1>&2; exit 1;;
esac
done
rm -f junk || exit 1
touch junk
test -d $tempdir || mkdir -p $tempdir || exit 1
chown "$mail_owner" junk >/dev/null 2>&1 || {
echo "Error: $mail_owner needs an entry in the passwd file" 1>&2
echo "Remember, $mail_owner must have a dedicated user id and group id." 1>&2
( rm -f $tempdir/junk && touch $tempdir/junk ) || {
echo Error: you have no write permission to $tempdir. 1>&2
echo Specify an alternative directory for scratch files. 1>&2
exit 1
}
chown root $tempdir/junk >/dev/null 2>&1 || {
echo Error: you have no permission to change file ownership. 1>&2
exit 1
}
chown "$mail_owner" $tempdir/junk >/dev/null 2>&1 || {
echo Error: $mail_owner needs an entry in the passwd file. 1>&2
echo Remember, $mail_owner must have a dedicated user id and group id. 1>&2
exit 1
}
case $setgid in
no) ;;
*) chgrp "$setgid" junk >/dev/null 2>&1 || {
echo "Error: $setgid needs an entry in the group file" 1>&2
echo "Remember, $setgid must have a dedicated group id." 1>&2
*) chgrp "$setgid" $tempdir/junk >/dev/null 2>&1 || {
echo Error: $setgid needs an entry in the group file. 1>&2
echo Remember, $setgid must have a dedicated group id. 1>&2
exit 1
}
esac
rm -f junk
rm -f $tempdir/junk
# Avoid clumsiness.
@@ -217,8 +246,8 @@ done
test -f bin/sendmail && {
compare_or_replace a+x,go-w bin/sendmail $SENDMAIL_PATH || exit 1
compare_or_symlink $sendmail_path $NEWALIASES_PATH
compare_or_symlink $sendmail_path $MAILQ_PATH
compare_or_symlink $SENDMAIL_PATH $NEWALIASES_PATH
compare_or_symlink $SENDMAIL_PATH $MAILQ_PATH
}
compare_or_replace a+r,go-w conf/LICENSE $CONFIG_DIRECTORY/LICENSE || exit 1
@@ -250,9 +279,9 @@ bin/postconf -c $CONFIG_DIRECTORY -e \
for name in sendmail_path newaliases_path mailq_path setgid manpages
do
eval echo $name=\$$name
done) >junk || exit 1
compare_or_move a+x,go-w junk $CONFIG_DIRECTORY/install.cf || exit 1
rm -f junk
done) >$tempdir/junk || exit 1
compare_or_move a+x,go-w $tempdir/junk $CONFIG_DIRECTORY/install.cf || exit 1
rm -f $tempdir/junk
# Use set-gid privileges instead of writable maildrop (optional).

View File

@@ -1,4 +1,4 @@
Incompatible changes with snapshot 19991216
Incompatible changes with snapshot 19991219
===========================================
- The experimental permit_recipient_map feature is gone. It was
@@ -27,9 +27,14 @@ parent domain of a transport map entry, you must now add a
corresponding "domain.name local:" entry in your transport_maps.
See the html/faq.html sections for firewalls and intranets.
Major changes with snapshot 19991216
Major changes with snapshot 19991219
====================================
- Overhauled FAQ (html/faq.html) with many more examples.
- Several little improvements to the installation procedure:
relative symlinks, configurable directory for scratch files.
- Updated LDAP client code (John Hensley).
- Updated mysql client code (Scott Cotton).

View File

@@ -256,6 +256,10 @@ mail_owner = postfix
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
# Exception: delivery for root is done as $default_user.
#
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE WITH, E.G., PROCMAIL,
# YOU MUST SET UP AN ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL
# USER.
#
# Other environment variables of interest: USER (recipient username),
# EXTENSION (address extension), DOMAIN (domain part of address),
# and LOCAL (the address localpart).

View File

@@ -218,6 +218,15 @@ check)
$WARN not owned by $mail_owner: $dir)
done
for dir in bin etc lib sbin usr
do
test -d $dir && find $dir -type f -print | while read path
do
cmp -s $path /$path ||
$WARN $queue_directory/$path and /$path differ
done
done
$command_directory/postsuper || exit 1
find corrupt -type f -exec $WARN damaged message: {} \;

View File

@@ -219,6 +219,15 @@ check)
$WARN not owned by $mail_owner: $dir)
done
for dir in bin etc lib sbin usr
do
test -d $dir && find $dir -type f -print | while read path
do
cmp -s $path /$path ||
$WARN $queue_directory/$path and /$path differ
done
done
$command_directory/postsuper || exit 1
find corrupt -type f -exec $WARN damaged message: {} \;

View File

@@ -100,6 +100,10 @@ home_mailbox =
# command to use instead of mailbox delivery. The command is run
# as the recipient with proper HOME, SHELL and LOGNAME environment settings.
# Exception: delivery for root is done as $default_user.
#
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE WITH, E.G., PROCMAIL,
# YOU MUST SET UP AN ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL
# USER.
#
# Other environment variables of interest: USER (recipient username),
# EXTENSION (address extension), DOMAIN (domain part of address),

View File

@@ -15,7 +15,7 @@
* Version of this program.
*/
#define VAR_MAIL_VERSION "mail_version"
#define DEF_MAIL_VERSION "Snapshot-19991216"
#define DEF_MAIL_VERSION "Snapshot-19991219"
extern char *var_mail_version;
/* LICENSE

File diff suppressed because it is too large Load Diff

View File

@@ -849,8 +849,9 @@ subdomain under any of the domains listed in <b>$maps_rbl_domains.</b>
<dt> <b>relay_domains</b>
<dd> This parameter controls the behavior of the <a
href="#check_relay_domains"> check_relay_domains</a> and <a
href="#check_relay_domains"> check_relay_domains</a>, <a
href="#reject_unauth_destination"> reject_unauth_destination</a>
and <a href="#permit_auth_destination"> permit_auth_destination</a>
restrictions that can appear as part of a recipient address
restriction list.

View File

@@ -85,12 +85,7 @@ case "$SYSTEM.$RELEASE" in
;;
BSD/OS.4*) SYSTYPE=BSDI4
;;
OSF1.V3.*) SYSTYPE=OSF1
# Use the native compiler by default
: ${CC=cc}
: ${DEBUG="-g3"}
;;
OSF1.V4.*) SYSTYPE=OSF1
OSF1.V[3-5].*) SYSTYPE=OSF1
# Use the native compiler by default
: ${CC=cc}
: ${DEBUG="-g3"}

View File

@@ -962,16 +962,11 @@ static int vrfy_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *argv)
smtpd_chat_reply(state, "%s", err);
return (-1);
}
if (SMTPD_STAND_ALONE(state) == 0
&& (err = smtpd_check_rcpt(state, argv[1].strval)) != 0) {
smtpd_chat_reply(state, "%s", err);
return (-1);
}
if ((err = smtpd_check_rcptmap(state, argv[1].strval)) != 0) {
smtpd_chat_reply(state, "%s", err);
return (-1);
}
smtpd_chat_reply(state, "250 <%s>", argv[1].strval);
smtpd_chat_reply(state, "252 <%s>", argv[1].strval);
return (0);
}