From 40155781065eb7254eb9fc9c48bd85b0b8ace4c0 Mon Sep 17 00:00:00 2001
From: intrigeri <intrigeri@boum.org>
Date: Thu, 24 Jun 2010 16:53:58 +0200
Subject: [PATCH] Fix code logic to make dbusername/dbpassword actually usable
 (Closes Redmine bug #2264)

---
 AUTHORS           |  1 +
 ChangeLog         |  2 ++
 handlers/mysql.in | 15 ++++++++-------
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index 92a21841..8c1d1c84 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -34,3 +34,4 @@ Olivier Berger <oberger@ouvaton.org> -- much work on the dup handler
 stefan <s.freudenberg@jpberlin.de> -- dup support for Amazon S3 buckets
 maniacmartin <martin@maniacmartin.com> -- rdiff confusing error message fix
 Chris Nolan <chris@cenolan.com> -- maildir subdirectory expansion
+Dan Carley -- mysql bugfix
diff --git a/ChangeLog b/ChangeLog
index 8dec95c5..dd8f6059 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -25,6 +25,8 @@ version 0.9.8 -- UNRELEASED
 	mysql:
 	 . Don't lock tables in the information_schema database
 	   (Closes: #587011)
+	 . Fix code logic to make dbusername/dbpassword actually usable
+	   (Closes Redmine bug #2264)
     doc changes
 	manpage:
 	 . Fix typo in manpage (Closes: #583778)
diff --git a/handlers/mysql.in b/handlers/mysql.in
index 68d51978..0282046f 100644
--- a/handlers/mysql.in
+++ b/handlers/mysql.in
@@ -86,7 +86,7 @@ fi
 
 defaultsfile=""
 
-if [ "$dbusername" != "" -a "$dbpassword" != "" ]
+if [ -n "$dbusername" -a -n "$dbpassword" ]
 then
    if [ $usevserver = yes ]
    then
@@ -140,13 +140,10 @@ password="$dbpassword"
 EOF
    umask $oldmask
    defaultsfile="--defaults-extra-file=$mycnf"
-fi
 
-# if a user is not set, use $configfile, otherwise use $mycnf
-if [ "$user" == "" ]; then
-   user=root;
-   defaultsfile="--defaults-extra-file=$configfile"
-else
+# else, if a user is set use her .my.cnf
+elif [ -n "$user" ]
+then
    userset=true;
    if [ $usevserver = yes ]
    then
@@ -169,6 +166,10 @@ else
 	
    defaultsfile="--defaults-extra-file=$userhome/.my.cnf"
    debug "using $defaultsfile"
+# otherwise use $configfile
+else
+   user=root
+   defaultsfile="--defaults-extra-file=$configfile"
 fi
 
 #######################################################################
-- 
GitLab