From a44229971b6ba800e444d8c11d18698e79682e17 Mon Sep 17 00:00:00 2001
From: Micah Anderson <micah@riseup.net>
Date: Sat, 24 Nov 2007 23:00:33 +0000
Subject: [PATCH] fixed Trac#29 causing slapcat + gzip not to work

---
 ChangeLog        | 6 ++++--
 handlers/ldap.in | 7 ++++---
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 8cd85c6..9a2cb00 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,8 +11,8 @@ version 0.9.5 -- unreleased
 	   created with permissions 000 by an older ninjahelper version.
 	 . Enhanced portability for other platforms
 	 . Added quoting because it was needed to prevent shell expansion, broking the
-           toint function sometimes (Trac#11)
-	 . Fixed reportspace option (Trac#10)
+           toint function sometimes (Closes: Trac#11)
+	 . Fixed reportspace option (Closes: Trac#10)
     handler changes
 	dup:
 	 . Support duplicity >= 0.4.3 invocation syntax (--ssh-command option
@@ -23,6 +23,8 @@ version 0.9.5 -- unreleased
 	   file (Closes: #394935)
 	 . Fixed ninjahelper to properly set compress option, standardized on yes/no
 	   instead of on/off
+	 . Fixed problem that caused combination of slapcat and compress to not work
+	   together (Closes: Trac#29)
 	maildir:
 	 . Added an examples file (Closes: Trac#23)
         mysql:
diff --git a/handlers/ldap.in b/handlers/ldap.in
index 5f9040a..4d9a335 100644
--- a/handlers/ldap.in
+++ b/handlers/ldap.in
@@ -55,7 +55,6 @@ if [ "$ldif" == "yes" ]; then
       
       if [ "$method" == "slapcat" ]; then
          execstr="$SLAPCAT -f $conf -b $dbsuffix"
-         debug "$execstr"
       else
          if [ -n "$ldaphost" ]; then
             execstr="$LDAPSEARCH -H $URLBASE://$ldaphost -x -L -b ""$dbsuffix"" -D ""$binddn"" -y $passwordfile"
@@ -81,10 +80,12 @@ if [ "$ldif" == "yes" ]; then
          fi
          
          if [ "$compress" == "yes" ]; then
-            output=`$execstr | $GZIP > $dumpdir/$dbsuffix.ldif.gz`
+            execstr="$execstr | $GZIP > $dumpdir/$dbsuffix.ldif.gz"
          else
-            output=`$execstr > $dumpdir/$dbsuffix.ldif`
+            execstr="$execstr > $dumpdir/$dbsuffix.ldif"
          fi
+         debug "$execstr"
+         output=`su root -c "$execstr" 2>&1`
          code=$?
          if [ "$code" == "0" ]; then
             debug $output
-- 
GitLab