mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-30 13:48:06 +00:00
snapshot-20020111
This commit is contained in:
parent
a41bbe4770
commit
1ba55910ce
@ -5944,6 +5944,11 @@ Apologies for any names omitted.
|
||||
non-blocking pipe. File: master/master_flow.c. Report:
|
||||
Hamish Marson.
|
||||
|
||||
20020111
|
||||
|
||||
Feedback: feedback, bugfixes, and brain-dead shell workarounds
|
||||
for the install scripts by Victor Duchovny and Simon Mudd.
|
||||
|
||||
Open problems:
|
||||
|
||||
Low: don't do user@domain and @domain lookups in
|
||||
|
@ -1,3 +1,17 @@
|
||||
Incompatible changes with snapshot-20020111
|
||||
===========================================
|
||||
|
||||
Another revision of installation procedures. The command line
|
||||
interface of the post-install script has changed; see embedded
|
||||
documentation. The postfix-files file with information about
|
||||
Postfix files and directories now contains $name variables rather
|
||||
than directory names, user names and group names. You can now change
|
||||
parameters such as mail_owner and setgid_group after installing
|
||||
Postfix, and apply the correct file/directory ownerships and
|
||||
permissions by executing the post-install script as:
|
||||
|
||||
post-install set-permissions config_directory=/etc/postfix
|
||||
|
||||
Incompatible changes with snapshot-20020110
|
||||
===========================================
|
||||
|
||||
@ -5,10 +19,10 @@ The INSTALL.sh installation procedure is replaced by a postfix-install
|
||||
script that either installs Postfix on the local system (as root)
|
||||
or that builds a package (as non-root) for distribution to other
|
||||
systems. This script creates a file $config_directory/postfix-files
|
||||
with ownership and permissions of Postfix files/directories. The
|
||||
$config_directory/post-install script applies the finishing touch:
|
||||
it sets file/directory ownership and permissions, edits existing
|
||||
configuration files, and creates missing queue directories.
|
||||
with ownership and permissions of Postfix files/directories. A
|
||||
new $config_directory/post-install script applies the finishing
|
||||
touch: it sets file/directory ownership and permissions, edits
|
||||
existing configuration files, and creates missing queue directories.
|
||||
|
||||
Incompatible changes with snapshot-20020106
|
||||
===========================================
|
||||
|
@ -9,7 +9,7 @@
|
||||
# SUMMARY
|
||||
# Postfix post-installation script
|
||||
# SYNOPSIS
|
||||
# post-install [options] config_directory
|
||||
# post-install [name=value] command ...
|
||||
# DESCRIPTION
|
||||
# The post-install script performs the finishing touch of a Postfix
|
||||
# installation, after the executable programs and configuration
|
||||
@ -27,47 +27,51 @@
|
||||
# create missing queue directories.
|
||||
# .PP
|
||||
# Arguments
|
||||
# .IP -create
|
||||
# .IP create-missing
|
||||
# Create missing queue directories with ownerships and permissions
|
||||
# according to the contents of $config_directory/postfix-files.
|
||||
#
|
||||
# This is required at Postfix start-up time.
|
||||
# .IP -set-permissions
|
||||
# .IP set-permissions
|
||||
# Set all file/directory ownerships and permissions according to the
|
||||
# contents of $config_directory/postfix-files. Implies -create.
|
||||
# contents of $config_directory/postfix-files. Implies create-missing.
|
||||
#
|
||||
# This is required when installing Postfix from a pre-built package.
|
||||
# .IP -upgrade-permissions
|
||||
# .IP upgrade-permissions
|
||||
# Update ownership and permission of selected files/directories as
|
||||
# specified in $config_directory/postfix-files. Implies -create.
|
||||
# specified in $config_directory/postfix-files. Implies create-missing.
|
||||
#
|
||||
# This is required when installing Postfix from source code, while
|
||||
# Postfix was already installed on the machine.
|
||||
# .IP -upgrade-configuration
|
||||
# .IP upgrade-configuration
|
||||
# Edit the installed main.cf and master.cf files, in order to account
|
||||
# for missing services and to fix deprecated parameter settings.
|
||||
#
|
||||
# This is required when Postfix was already installed on the machine.
|
||||
# .IP -upgrade-source
|
||||
# Short-hand for -upgrade-permissions -upgrade-configuration.
|
||||
# .IP upgrade-source
|
||||
# Short-hand for upgrade-permissions upgrade-configuration.
|
||||
#
|
||||
# This is recommended when upgrading Postfix from source code.
|
||||
# .IP -upgrade-package
|
||||
# Short-hand for -set-permissions -upgrade-configuration.
|
||||
# .IP upgrade-package
|
||||
# Short-hand for set-permissions upgrade-configuration.
|
||||
#
|
||||
# This is recommended when upgrading Postfix from a pre-built package.
|
||||
# .IP -first-install-reminder
|
||||
# .IP first-install-reminder
|
||||
# Remind the user that they still need to configure main.cf and the
|
||||
# aliases file, and that newaliases needs to be run.
|
||||
#
|
||||
# This is recommended when Postfix is installed for the first time.
|
||||
# .IP config_directory
|
||||
# Directory with Postfix configuration files. This must be an absolute
|
||||
# pathname.
|
||||
# .IP config_directory=pathname
|
||||
# Absolute pathname of the directory with Postfix configuration files.
|
||||
# This information must be specified if it is not given via the
|
||||
# process environment.
|
||||
# .IP command_directory=pathname
|
||||
# Absolute pathname of the directory with the postconf command.
|
||||
# This information must be specified if it is not given via the
|
||||
# process environment, and if the directory is not a standard
|
||||
# system directory.
|
||||
# SEE ALSO
|
||||
# postfix-install(1) Postfix primary installation script for installation
|
||||
# from source code, or for building a package for distribution to other
|
||||
# systems.
|
||||
# postfix-install(1) Postfix primary installation script.
|
||||
# FILES
|
||||
# $config_directory/main.cf, Postfix installation configuration.
|
||||
# $config_directory/postfix-files, permissions and ownerships.
|
||||
@ -87,32 +91,36 @@ umask 022
|
||||
|
||||
PATH=/bin:/usr/bin:/usr/sbin:/usr/etc:/sbin:/etc:/usr/contrib/bin:/usr/gnu/bin:/usr/ucb:/usr/bsd
|
||||
SHELL=/bin/sh
|
||||
IFS="
|
||||
"
|
||||
|
||||
USAGE="usage: $0 [options] config_directory
|
||||
USAGE="Usage: $0 [name=value] command
|
||||
create-missing Create missing queue directories.
|
||||
upgrade-source Use when upgrading from source.
|
||||
upgrade-package Use when upgrading from pre-built package.
|
||||
first-install-reminder Remind of mandatory configuration steps.
|
||||
config_directory=path Specify an absolute path name.
|
||||
command_directory=path Specify an absolute path name."
|
||||
|
||||
-upgrade-source Use when upgrading from source.
|
||||
# Process command-line options and parameter settings. Work around
|
||||
# brain damaged shells. "name=value command" should not make the
|
||||
# name=value setting permanent.
|
||||
|
||||
-upgrade-package Use when upgrading from pre-built package.
|
||||
|
||||
-first-install-reminder Remind of mandatory configuration steps.
|
||||
|
||||
config_directory Must be an absolute path name."
|
||||
|
||||
# Process command-line settings
|
||||
create=; set_perms=; upgrade_perms=; upgrade_conf=; first_install_reminder=
|
||||
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-create) create=1;;
|
||||
-set-perm*) create=1; set_perms=1;;
|
||||
-upgrade-perm*) create=1; upgrade_perms=1;;
|
||||
-upgrade-conf*) upgrade_conf=1;;
|
||||
-upgrade-source) create=1; upgrade_conf=1; upgrade_perms=1;;
|
||||
-upgrade-package) create=1; upgrade_conf=1; set_perms=1;;
|
||||
-first-install*) first_install_reminder=1;;
|
||||
/*) config_dir=$1;;
|
||||
"") break;;
|
||||
*) echo "Error: $USAGE" 1>&2; exit 1;;
|
||||
*=*) SAVED_IFS="$IFS"; IFS= eval $arg; IFS="$SAVED_IFS";;
|
||||
create-missing) create=1;;
|
||||
set-perm*) create=1; set_perms=1;;
|
||||
upgrade-perm*) create=1; upgrade_perms=1;;
|
||||
upgrade-conf*) upgrade_conf=1;;
|
||||
upgrade-source) create=1; upgrade_conf=1; upgrade_perms=1;;
|
||||
upgrade-package) create=1; upgrade_conf=1; set_perms=1;;
|
||||
first-install*) first_install_reminder=1;;
|
||||
"") break;;
|
||||
*) echo "Error: $USAGE" 1>&2; exit 1;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
@ -124,18 +132,19 @@ test -n "$create$upgrade_conf$first_install_reminder" || {
|
||||
exit 1
|
||||
}
|
||||
|
||||
test -n "$config_dir" || {
|
||||
echo "Error: $USAGE" 1>&2
|
||||
test -n "$config_directory" || {
|
||||
echo "Error: no config_directory parameter setting." 1>&2
|
||||
echo "$USAGE" 1>&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
test -d "$config_dir" || {
|
||||
echo Error: $config_dir is not a directory. 1>&2
|
||||
test -d "$config_directory" || {
|
||||
echo Error: $config_directory is not a directory. 1>&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
test -f $config_dir/postfix-files || {
|
||||
Error: $config_dir/postfix-files is not a file. 1>&2
|
||||
test -f $config_directory/postfix-files || {
|
||||
Error: $config_directory/postfix-files is not a file. 1>&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
@ -150,37 +159,63 @@ else
|
||||
CHATTR=echo
|
||||
fi
|
||||
|
||||
# Use file/directory status information in $config_dir/postfix-files.
|
||||
# Bootstrapping problem.
|
||||
|
||||
if [ -n "$command_directory" ]
|
||||
then
|
||||
POSTCONF="$command_directory/postconf"
|
||||
else
|
||||
POSTCONF="postconf"
|
||||
fi
|
||||
|
||||
# Settings from main.cf must override command line or environment settings.
|
||||
|
||||
for name in daemon_directory command_directory queue_directory mail_owner \
|
||||
setgid_group sendmail_path newaliases_path mailq_path manpage_path
|
||||
do
|
||||
eval $name=\`$POSTCONF -c $config_directory -h $name\` || kill $$
|
||||
done
|
||||
|
||||
POSTCONF="$command_directory/postconf"
|
||||
|
||||
# Use file/directory status information in $config_directory/postfix-files.
|
||||
|
||||
test -n "$create" && {
|
||||
IFS=:
|
||||
while read path type owner group mode upgrade_flag create_flag junk
|
||||
while IFS=: read path type owner group mode upgrade_flag create_flag junk
|
||||
do
|
||||
set_permission=
|
||||
case $path in
|
||||
/*) # Create missing directories with proper owner/group/mode settings.
|
||||
if [ -n "$create" -a "$type" = "d" -a -n "$create_flag" -a ! -d "$path" ]
|
||||
then
|
||||
mkdir $path || exit 1
|
||||
$CHATTR $path >/dev/null 2>/dev/null
|
||||
set_permission=1
|
||||
# Update all owner/group/mode settings.
|
||||
elif [ -n "$set_perms" ]
|
||||
then
|
||||
set_permission=1
|
||||
# Update obsolete owner/group/mode settings.
|
||||
elif [ -n "$upgrade_perms" -a -n "$upgrade_flag" ]
|
||||
then
|
||||
set_permission=1
|
||||
fi
|
||||
test -n "$set_permission" && {
|
||||
chown $owner $path || exit 1
|
||||
test -z "$group" || chgrp $group $path || exit 1
|
||||
chmod $mode $path || exit 1
|
||||
}
|
||||
;;
|
||||
[$]*) eval path=$path;;
|
||||
/*) ;;
|
||||
*) continue;;
|
||||
esac
|
||||
done <$config_dir/postfix-files
|
||||
case $owner in
|
||||
[$]*) eval owner=$owner;;
|
||||
esac
|
||||
case $group in
|
||||
[$]*) eval group=$group;;
|
||||
esac
|
||||
# Create missing directories with proper owner/group/mode settings.
|
||||
if [ -n "$create" -a "$type" = "d" -a -n "$create_flag" -a ! -d "$path" ]
|
||||
then
|
||||
mkdir $path || exit 1
|
||||
$CHATTR $path >/dev/null 2>/dev/null
|
||||
set_permission=1
|
||||
# Update all owner/group/mode settings.
|
||||
elif [ -n "$set_perms" ]
|
||||
then
|
||||
set_permission=1
|
||||
# Update obsolete owner/group/mode settings.
|
||||
elif [ -n "$upgrade_perms" -a -n "$upgrade_flag" ]
|
||||
then
|
||||
set_permission=1
|
||||
fi
|
||||
test -n "$set_permission" && {
|
||||
chown $owner $path || exit 1
|
||||
test -z "$group" || chgrp $group $path || exit 1
|
||||
chmod $mode $path || exit 1
|
||||
}
|
||||
done <$config_directory/postfix-files
|
||||
}
|
||||
|
||||
# Upgrade existing Postfix configuration files if necessary.
|
||||
@ -189,9 +224,9 @@ test -n "$upgrade_conf" && {
|
||||
|
||||
# Add missing flush service to master.cf.
|
||||
|
||||
grep 'flush.*flush' $config_dir/master.cf >/dev/null || {
|
||||
echo Editing $config_dir/master.cf, adding missing entry for flush service
|
||||
cat >>$config_dir/master.cf <<EOF
|
||||
grep 'flush.*flush' $config_directory/master.cf >/dev/null || {
|
||||
echo Editing $config_directory/master.cf, adding missing entry for flush service
|
||||
cat >>$config_directory/master.cf <<EOF
|
||||
flush unix - - n 1000? 0 flush
|
||||
EOF
|
||||
}
|
||||
@ -199,9 +234,9 @@ EOF
|
||||
# Change privileged pickup service into unprivileged.
|
||||
|
||||
grep "^pickup[ ]*fifo[ ]*n[ ]*n" \
|
||||
$config_dir/master.cf >/dev/null && {
|
||||
echo Editing $config_dir/master.cf, making the pickup service unprivileged
|
||||
ed $config_dir/master.cf <<EOF
|
||||
$config_directory/master.cf >/dev/null && {
|
||||
echo Editing $config_directory/master.cf, making the pickup service unprivileged
|
||||
ed $config_directory/master.cf <<EOF
|
||||
/^pickup[ ]*fifo[ ]*n[ ]*n/
|
||||
s/\(n[ ]*\)n/\1-/
|
||||
p
|
||||
@ -215,9 +250,9 @@ EOF
|
||||
for name in cleanup flush
|
||||
do
|
||||
grep "^$name[ ]*unix[ ]*-" \
|
||||
$config_dir/master.cf >/dev/null && {
|
||||
echo Editing $config_dir/master.cf, making the $name service public
|
||||
ed $config_dir/master.cf <<EOF
|
||||
$config_directory/master.cf >/dev/null && {
|
||||
echo Editing $config_directory/master.cf, making the $name service public
|
||||
ed $config_directory/master.cf <<EOF
|
||||
/^$name[ ]*unix[ ]*-/
|
||||
s/-/n/
|
||||
p
|
||||
@ -236,7 +271,7 @@ EOF
|
||||
# If you don't want slow mailq, be sure to hash defer and deferred,
|
||||
# because those two directories can contain lots of files.
|
||||
|
||||
found=`bin/postconf -c $config_dir -h hash_queue_names`
|
||||
found=`$POSTCONF -c $config_directory -h hash_queue_names`
|
||||
missing=
|
||||
(echo "$found" | grep active >/dev/null) || missing="$missing active"
|
||||
(echo "$found" | grep bounce >/dev/null) || missing="$missing bounce"
|
||||
@ -246,7 +281,7 @@ EOF
|
||||
(echo "$found" | grep deferred>/dev/null)|| missing="$missing deferred"
|
||||
test -n "$missing" && {
|
||||
echo fixing main.cf hash_queue_names for missing $missing
|
||||
bin/postconf -c $config_dir -e hash_queue_names="$found$missing"
|
||||
$POSTCONF -c $config_directory -e hash_queue_names="$found$missing"
|
||||
}
|
||||
|
||||
}
|
||||
@ -255,12 +290,12 @@ EOF
|
||||
|
||||
test -n "$first_install_reminder" && {
|
||||
|
||||
ALIASES=`postconf -h alias_database | sed 's/^[^:]*://'`
|
||||
NEWALIASES_PATH=`postconf -h newaliases_path`
|
||||
ALIASES=`$POSTCONF -h alias_database | sed 's/^[^:]*://'`
|
||||
NEWALIASES_PATH=`$POSTCONF -h newaliases_path`
|
||||
cat <<EOF 1>&2
|
||||
|
||||
Warning: you still need to edit myorigin/mydestination/mynetworks
|
||||
parameter settings in $config_dir/main.cf.
|
||||
parameter settings in $config_directory/main.cf.
|
||||
|
||||
See also http://www.postfix.org/faq.html for information about
|
||||
dialup sites or about sites inside a firewalled network.
|
||||
|
@ -164,7 +164,7 @@ check)
|
||||
\( -perm -020 -o -perm -002 \) -type f \
|
||||
-exec $WARN group or other writable: {} \;
|
||||
|
||||
$SHELL $config_directory/post-install -create $config_directory || {
|
||||
$SHELL $config_directory/post-install create-missing || {
|
||||
$WARN unable to create missing queue directories
|
||||
exit 1
|
||||
}
|
||||
|
@ -142,13 +142,17 @@
|
||||
umask 022
|
||||
PATH=/bin:/usr/bin:/usr/sbin:/usr/etc:/sbin:/etc:/usr/contrib/bin:/usr/gnu/bin:/usr/ucb:/usr/bsd
|
||||
SHELL=/bin/sh
|
||||
IFS="
|
||||
"
|
||||
|
||||
# Process command-line options and parameter settings.
|
||||
# Process command-line options and parameter settings. Work around
|
||||
# brain damaged shells. "name=value command" should not make the
|
||||
# name=value setting permanent.
|
||||
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
*=*) IFS= eval $arg;;
|
||||
*=*) SAVED_IFS="$IFS"; IFS= eval $arg; IFS="$SAVED_IFS";;
|
||||
-non-interactive) non_interactive=1;;
|
||||
*) echo Error: usage: $0 [-non-interactive] name=value ... 1>&2
|
||||
exit 1;;
|
||||
@ -509,26 +513,26 @@ cat <<EOF >$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
# update=update owner/group/mode (upgrade mode).
|
||||
# create=create missing directory.
|
||||
#
|
||||
$config_directory:d:root::755:u
|
||||
$daemon_directory:d:root::755:u
|
||||
$queue_directory:d:root::755:u
|
||||
\$config_directory:d:root::755:u
|
||||
\$daemon_directory:d:root::755:u
|
||||
\$queue_directory:d:root::755:u:c
|
||||
EOF
|
||||
|
||||
# Generate instructions only for queue subdirectories.
|
||||
|
||||
for dir in active bounce corrupt defer deferred flush incoming private saved
|
||||
do
|
||||
echo $queue_directory/$dir:d:$mail_owner::700:u:c \
|
||||
echo \$queue_directory/$dir:d:\$mail_owner::700:u:c \
|
||||
>>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
done
|
||||
|
||||
echo $queue_directory/maildrop:d:$mail_owner:$setgid_group:730:u:c \
|
||||
echo \$queue_directory/maildrop:d:\$mail_owner:\$setgid_group:730:u:c \
|
||||
>>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
|
||||
echo $queue_directory/public:d:$mail_owner:$setgid_group:710:u:c \
|
||||
echo \$queue_directory/public:d:\$mail_owner:\$setgid_group:710:u:c \
|
||||
>>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
|
||||
echo $queue_directory/pid:d:root::755:u:c \
|
||||
echo \$queue_directory/pid:d:root::755:u:c \
|
||||
>>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
|
||||
# Install daemon programs.
|
||||
@ -536,7 +540,7 @@ echo $queue_directory/pid:d:root::755:u:c \
|
||||
for file in `censored_ls libexec`
|
||||
do
|
||||
compare_or_replace $EXE libexec/$file $DAEMON_DIRECTORY/$file || exit 1
|
||||
echo $daemon_directory/$file:f:root::755 \
|
||||
echo \$daemon_directory/$file:f:root::755 \
|
||||
>>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
done
|
||||
|
||||
@ -545,7 +549,7 @@ done
|
||||
for file in `censored_ls bin | grep '^post' | egrep -v '^post(drop|queue)$'`
|
||||
do
|
||||
compare_or_replace $EXE bin/$file $COMMAND_DIRECTORY/$file || exit 1
|
||||
echo $command_directory/$file:f:root::755 \
|
||||
echo \$command_directory/$file:f:root::755 \
|
||||
>>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
done
|
||||
|
||||
@ -557,7 +561,7 @@ then
|
||||
for file in postdrop postqueue
|
||||
do
|
||||
compare_or_replace $EXE bin/$file $COMMAND_DIRECTORY/$file || exit 1
|
||||
echo $command_directory/$file:f:root:postdrop:1755 \
|
||||
echo \$command_directory/$file:f:root:\$setgid_group:1755 \
|
||||
>>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
done
|
||||
else
|
||||
@ -565,7 +569,7 @@ else
|
||||
do
|
||||
compare_or_replace 2$EXE bin/$file $COMMAND_DIRECTORY/$file postdrop \
|
||||
|| exit 1
|
||||
echo $command_directory/$file:f:root:postdrop:1755 \
|
||||
echo \$command_directory/$file:f:root:\$setgid_group:1755 \
|
||||
>>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
done
|
||||
fi
|
||||
@ -577,9 +581,9 @@ test -f bin/sendmail && {
|
||||
compare_or_symlink $SENDMAIL_PATH $NEWALIASES_PATH
|
||||
compare_or_symlink $SENDMAIL_PATH $MAILQ_PATH
|
||||
cat <<EOF >>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
$sendmail_path:f:root::755
|
||||
$newaliases_path:f:root::755
|
||||
$mailq_path:f:root::755
|
||||
\$sendmail_path:f:root::755
|
||||
\$newaliases_path:f:root::755
|
||||
\$mailq_path:f:root::755
|
||||
EOF
|
||||
}
|
||||
|
||||
@ -596,19 +600,19 @@ else
|
||||
do
|
||||
compare_or_replace 644 conf/$file $CONFIG_DIRECTORY/$file || exit 1
|
||||
done
|
||||
test -z "$install_root" && need_config="-create -first-install"
|
||||
test -z "$install_root" && need_config="create-missing first-install"
|
||||
fi
|
||||
|
||||
for file in `censored_ls conf | egrep -v 'postfix-script|post-install'`
|
||||
do
|
||||
echo $config_directory/$file:f:root::644 \
|
||||
echo \$config_directory/$file:f:root::644 \
|
||||
>>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
done
|
||||
|
||||
for file in postfix-script post-install
|
||||
do
|
||||
compare_or_replace $EXE conf/$file $CONFIG_DIRECTORY/$file || exit 1
|
||||
echo $config_directory/$file:f:root::755 \
|
||||
echo \$config_directory/$file:f:root::755 \
|
||||
>>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
done
|
||||
|
||||
@ -635,7 +639,7 @@ bin/postconf -c $CONFIG_DIRECTORY -e \
|
||||
for file in `censored_ls man?/*`
|
||||
do
|
||||
compare_or_replace 644 $file $MANPAGE_PATH/$file || exit 1
|
||||
echo "$manpage_path/$file:f:root::644" \
|
||||
echo \$manpage_path/$file:f:root::644 \
|
||||
>>$CONFIG_DIRECTORY/postfix-files || exit 1
|
||||
done)
|
||||
|
||||
@ -645,4 +649,6 @@ bin/postconf -c $CONFIG_DIRECTORY -e \
|
||||
|
||||
test -n "$install_root" && exit 0
|
||||
|
||||
${SHELL} conf/post-install ${need_config-"-upgrade-source"} $config_directory
|
||||
export command_directory config_directory
|
||||
|
||||
${SHELL} conf/post-install ${need_config-"upgrade-source"}
|
||||
|
@ -15,7 +15,7 @@
|
||||
* Version of this program.
|
||||
*/
|
||||
#define VAR_MAIL_VERSION "mail_version"
|
||||
#define DEF_MAIL_VERSION "Snapshot-20020110"
|
||||
#define DEF_MAIL_VERSION "Snapshot-20020111"
|
||||
extern char *var_mail_version;
|
||||
|
||||
/* LICENSE
|
||||
|
@ -44,6 +44,7 @@
|
||||
/* System library. */
|
||||
|
||||
#include <sys_defs.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@ -68,6 +69,7 @@ int mail_flow_get(int len)
|
||||
{
|
||||
char *myname = "mail_flow_get";
|
||||
char buf[BUFFER_SIZE];
|
||||
struct stat st;
|
||||
int count;
|
||||
int n = 0;
|
||||
|
||||
@ -78,8 +80,14 @@ int mail_flow_get(int len)
|
||||
msg_panic("%s: bad length %d", myname, len);
|
||||
|
||||
/*
|
||||
* Read and discard N bytes. XXX AIX read() returns 0 when the pipe is
|
||||
* empty.
|
||||
* Silence some wild claims.
|
||||
*/
|
||||
if (fstat(MASTER_FLOW_WRITE, &st) < 0)
|
||||
msg_fatal("fstat flow pipe write descriptor: %m");
|
||||
|
||||
/*
|
||||
* Read and discard N bytes. XXX AIX read() can return 0 when an open
|
||||
* pipe is empty.
|
||||
*/
|
||||
for (count = len; count > 0; count -= n)
|
||||
if ((n = read(MASTER_FLOW_READ, buf, count > BUFFER_SIZE ?
|
||||
|
Loading…
x
Reference in New Issue
Block a user