From: Dragan Dosen <Dragan.Dosen@CARNet.hr>
Date: Wed, 22 Feb 2012 14:56:42 +0000 (+0100)
Subject: Pojava greske u slucaju da datoteka /etc/inetd.conf ne postoji.
X-Git-Tag: v3.1.2^0
X-Git-Url: http://ftp.carnet.hr/pub/carnet-debian/scm?a=commitdiff_plain;h=refs%2Fheads%2Fwheezy;p=squirrelmail-change-pass-cn.git

Pojava greske u slucaju da datoteka /etc/inetd.conf ne postoji.
(rijeseno: #55771)
---

diff --git a/debian/changelog b/debian/changelog
index c5db364..ffb0eda 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+squirrelmail-change-pass-cn (3.1.2) stable; urgency=low
+
+  * Pojava greske u slucaju da datoteka /etc/inetd.conf ne postoji.
+    (rijeseno: #55771)
+
+ -- Dragan Dosen <Dragan.Dosen@CARNet.hr>  Wed, 22 Feb 2012 15:39:25 +0100
+
 squirrelmail-change-pass-cn (3.1.1) stable; urgency=low
 
   * Promjena e-mail adrese odrzavatelja paketa.
diff --git a/debian/postinst b/debian/postinst
index a885448..50ad721 100644
--- a/debian/postinst
+++ b/debian/postinst
@@ -15,6 +15,27 @@ 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).
 #
@@ -42,19 +63,27 @@ 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"
-
-        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
+chk_conf_tag /etc/xinetd.d/poppassd
+if [ $RET -lt 2 ]; then
+    cp_echo "CN: Enabling poppassd in /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