From d65fa0c058b6a2e91126e1634aafd130807f58bd Mon Sep 17 00:00:00 2001
From: intrigeri <intrigeri@boum.org>
Date: Tue, 5 Jan 2010 13:09:38 +0100
Subject: [PATCH] Cherry-picked "fixes for mysql handler for mysqld inside a
 vserver"

This commit (64edfccf7684d9c080e734b25fa9361f0190afec) was wrongly committed to
the debian branch.

Conflicts:

	handlers/mysql.in
---
 handlers/mysql.in | 119 ++++++++++++++++++++++++----------------------
 1 file changed, 63 insertions(+), 56 deletions(-)

diff --git a/handlers/mysql.in b/handlers/mysql.in
index 0aa3abbc..3b7423f2 100644
--- a/handlers/mysql.in
+++ b/handlers/mysql.in
@@ -88,29 +88,35 @@ defaultsfile=""
 
 if [ "$dbusername" != "" -a "$dbpassword" != "" ]
 then
-   if [ $usevserver = yes ]
-   then
-      vhome=`$VSERVER $vsname exec getent passwd "root" | @AWK@ -F: '{print $6}'`
-   home="$vroot$vhome"
-   else
-      home=`getent passwd "root" | @AWK@ -F: '{print $6}'`
-   fi
+    if [ $usevserver = yes ]
+    then
+    	home=`$VSERVER $vsname exec getent passwd "root" | @AWK@ -F: '{print $6}'`
+    else
+    	home=`getent passwd "root" | @AWK@ -F: '{print $6}'`
+    fi
 
-   [ -d $home ] || fatal "Can't find root's home directory ($home)."
+    [ -d $home ] || fatal "Can't find root's home directory ($home)."
+    
+    mycnf="$home/.my.cnf"
 
-   mycnf="$home/.my.cnf"
-
-   if [ -f $mycnf ]
-   then
-   # rename temporarily
-   tmpcnf="$home/my.cnf.disable"
-   debug "mv $mycnf $tmpcnf"
-   mv $mycnf $tmpcnf
-   fi
+    if [ $usevserver = yes ]
+    then
+      workcnf="$vroot$mycnf"
+    else
+      workcnf="$mycnf"
+    fi
 
-   oldmask=`umask`
-   umask 077
-   cat > $mycnf <<EOF
+    if [ -f $workcnf ]
+    then
+      # rename temporarily
+      tmpcnf="$workcnf.disable"
+      debug "mv $workcnf $tmpcnf"
+      mv $workcnf $tmpcnf
+    fi
+    
+    oldmask=`umask`
+    umask 077
+    cat > $workcnf <<EOF
 # auto generated backupninja mysql conf
 [mysql]
 host=$dbhost
@@ -126,14 +132,14 @@ password="$dbpassword"
 host=$dbhost
 user=$dbusername
 password="$dbpassword"
+
+[mysqladmin]
+host=$dbhost
+user=$dbusername
+password="$dbpassword"
 EOF
-   umask $oldmask
-   if [ $usevserver = yes ]
-   then
-      defaultsfile="--defaults-extra-file=$vhome/.my.cnf"
-   else
-      defaultsfile="--defaults-extra-file=$mycnf"
-   fi
+	umask $oldmask
+	defaultsfile="--defaults-extra-file=$mycnf"
 fi
 
 # if a user is not set, use $configfile, otherwise use $mycnf
@@ -141,27 +147,28 @@ if [ "$user" == "" ]; then
    user=root;
    defaultsfile="--defaults-extra-file=$configfile"
 else
-   userset=true;
-   if [ $usevserver = yes ]
-   then
-      vuserhome=`$VSERVER $vsname exec getent passwd "$user" | @AWK@ -F: '{print $6}'`
-      if [ $? -eq 2 ]
-      then
-         fatal "User $user not found in /etc/passwd"
-      fi
-         userhome="$vroot$vuserhome"
-   else
-      userhome=`getent passwd "$user" | @AWK@ -F: '{print $6}'`
-      if [ $? -eq 2 ]
-      then
-         fatal "User $user not found in /etc/passwd"
-      fi
-         fi
-
-   debug "User home set to: $userhome"
-   [ -f $userhome/.my.cnf ] || fatal "Can't find config file in $userhome/.my.cnf"
-   defaultsfile="--defaults-extra-file=$userhome/.my.cnf"
-   debug "using $defaultsfile"
+	userset=true;
+	if [ $usevserver = yes ]
+	then
+	    userhome=`$VSERVER $vsname exec getent passwd "$user" | @AWK@ -F: '{print $6}'`
+	    if [ $? -eq 2 ]
+	    then
+	    	fatal "User $user not found in /etc/passwd"
+	    fi
+	    debug "User home set to: $vroot$userhome"
+	    [ -f $vroot$userhome/.my.cnf ] || fatal "Can't find config file in $userhome/.my.cnf"
+	else
+	    userhome=`getent passwd "$user" | @AWK@ -F: '{print $6}'`
+	    if [ $? -eq 2 ]
+	    then
+	    	fatal "User $user not found in /etc/passwd"
+	    fi
+	    debug "User home set to: $userhome"
+	    [ -f $userhome/.my.cnf ] || fatal "Can't find config file in $userhome/.my.cnf"
+	fi
+	
+	defaultsfile="--defaults-extra-file=$userhome/.my.cnf"
+	debug "using $defaultsfile"
 fi
 
 #######################################################################
@@ -308,14 +315,14 @@ fi
 # clean up tmp config file
 if [ "$dbusername" != "" -a "$dbpassword" != "" ]
 then
-   ## clean up tmp config file
-   debug "rm $mycnf"
-   rm $mycnf
-   if [ -f "$tmpcnf" ]
-   then
-      debug "mv $tmpcnf $mycnf"
-      mv $tmpcnf $mycnf
-   fi
+	## clean up tmp config file
+	debug "rm $workcnf"
+	rm $workcnf
+	if [ -f "$tmpcnf" ]
+	then
+		debug "mv $tmpcnf $workcnf"
+		mv $tmpcnf $workcnf
+	fi
 fi
 
 return 0
-- 
GitLab