. /usr/share/carnet-tools/functions.sh
PKG="squirrelmail-change-pass-cn"
-VERSION="3.0.2"
+VERSION="3.1.0"
SQCONFDIR="/etc/squirrelmail"
SQCONF="$SQCONFDIR/config.php"
need_restart=0
+# chk_conf_tag ()
+#
+# Check if configuration file has CARNet package info lines.
+# return: $RET => 0 - tagged
+# 1 - file does not exists
+# 2 - file exists, but it is not tagged
+#
+chk_conf_tag () {
+ local conf_file
+ conf_file="$1"
+ RET=1
+
+ if [ -f "$conf_file" ]; then
+ if egrep -q "^## Begin - Generated by CARNet package ${PKG}$" "$conf_file"; then
+ RET=0
+ else
+ RET=2
+ fi
+ fi
+}
+
# Configure poppassd to refuse connection from all hosts
# but localhost (127.0.0.1).
#
# Enable change_pass plugin in SquirrelMail config.php.
#
if ! egrep -q '^\$plugins\[[0-9]+\][\ ]*=[\ ]*'\''change_pass'\' "$SQCONF"; then
- /usr/sbin/squirrelmail-configure --install-plugin change_pass
+ squirrelmail-configure --install-plugin change_pass
fi
# Convert poppassd service from inetd.conf to xinetd.conf type.
# Service configuration is saved in /etc/xinetd.d/ directory.
#
-if [ -x /etc/init.d/xinetd -a -d /etc/xinetd.d -a -x /usr/sbin/itox ]; then
-
- if egrep -q '^poppassd' /etc/inetd.conf && \
- [ ! -f /etc/xinetd.d/poppassd ]; then
-
- cp_echo "CN: Enabling poppassd in /etc/xinetd.d/poppassd"
+chk_conf_tag /etc/xinetd.d/poppassd
+if [ $RET -lt 2 ]; then
+ cp_echo "CN: Enabling poppassd in /etc/xinetd.d/poppassd"
- touch /etc/xinetd.d/poppassd.$$
- grep "^poppassd" /etc/inetd.conf | \
- itox -daemon_dir /usr/sbin | cp-update "$PKG" /etc/xinetd.d/poppassd.$$
- cp_mv /etc/xinetd.d/poppassd.$$ /etc/xinetd.d/poppassd
-
- need_restart=1
+ if [ ! -d /etc/xinetd.d ]; then
+ mkdir -p /etc/xinetd.d/
fi
+ touch /etc/xinetd.d/poppassd.$$
+ cp-update "$PKG" /etc/xinetd.d/poppassd.$$ <<EOF
+service poppassd
+{
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ user = root
+ server = /usr/sbin/poppassd
+}
+EOF
+ cp_mv /etc/xinetd.d/poppassd.$$ /etc/xinetd.d/poppassd
+
+ need_restart=1
fi
# Restart xinetd if needed.
#
if [ $need_restart -eq 1 ]; then
-
if [ -x "/etc/init.d/xinetd" ]; then
if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
invoke-rc.d xinetd restart || exit $?