From c35cd03adeea6df54d6cea3c7a8e55ac537aa7bb Mon Sep 17 00:00:00 2001
From: Yannick Brosseau <yannick.brosseau@gmail.com>
Date: Wed, 10 Nov 2010 17:41:42 -0500
Subject: [PATCH] Use a mysql_connect function instead of a shell exec to test the mysql server permission

Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com>
---
 db/mysql/mysql_service.inc |   24 +++++++++++-------------
 1 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/db/mysql/mysql_service.inc b/db/mysql/mysql_service.inc
index 10dccaa..5922c0a 100644
--- a/db/mysql/mysql_service.inc
+++ b/db/mysql/mysql_service.inc
@@ -88,21 +88,19 @@ class provisionService_db_mysql extends provisionService_db_pdo {
   }
   
   function grant_host(provisionContext_server $server) {
-    $command = sprintf('mysql -u intntnllyInvalid -h %s -P %s',
-      escapeshellarg($this->server->remote_host),
-      escapeshellarg($this->server->db_port));
 
-
-    $server->shell_exec($command);
-    if (preg_match("/Access denied for user 'intntnllyInvalid'@'([^']*)'/", implode('', drush_shell_exec_output()), $match)) {
-      return $match[1];
-    }
-    elseif (preg_match("/Host '([^']*)' is not allowed to connect to/", implode('', drush_shell_exec_output()), $match)) {
-      return $match[1];
-    }
-    else {
-      return drush_set_error('PROVISION_DB_CONNECT_FAIL', dt('Dummy connection failed to fail: %msg', array('%msg' => join("\n", drush_shell_exec_output()))));
+    $link = @mysql_connect($this->server->remote_host.':'.$this->server->db_port,
+			  'intntnllyInvalid',
+			  '',
+			  true);
+    if($link) {
+      return drush_set_error('PROVISION_DB_CONNECT_FAIL', dt('Dummy connection failed to fail'));
+    } else {
+      drush_log("Database do not allow anonymous connection");
+      @mysql_close($link);
+      return false;
     }
+
   }
 
   function generate_dump() {
-- 
1.7.2.3

