[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pecl-cvs
Subject:    [PECL-CVS] com =?UTF-8?Q?pecl/database/mysql=5Fxdevapi=3A=20WL=23=31=32=32=38=30=3A?= =?UTF-8?Q?=20c
From:       hery ramilison <mysqlre () php ! net>
Date:       2018-07-30 18:32:18
Message-ID: php-mail-b78f9b6ea0224a882ed4e47f160695be1646549487 () git ! php ! net
[Download RAW message or body]

Commit:    790229bc9ab917a2956f588abe8ee00091a547fd
Author:    Darek Slusarczyk <dariusz.slusarczyk@oracle.com>         Mon, 30 Jul 2018 \
                20:32:18 +0200
Parents:   a8157a90dc3b4737f593190353acd04498424a93
Branches:  release/8.0.13

Link:       http://git.php.net/?p=pecl/database/mysql_xdevapi.git;a=commitdiff;h=790229bc9ab917a2956f588abe8ee00091a547fd


Log:
WL#12280: connection error handling - throw an exception
- fix valgrind issues

Bugs:
https://bugs.php.net/12280

Changed paths:
  M  xmysqlnd/xmysqlnd_session.cc


Diff:
diff --git a/xmysqlnd/xmysqlnd_session.cc b/xmysqlnd/xmysqlnd_session.cc
index 162a17c..5459aed 100644
--- a/xmysqlnd/xmysqlnd_session.cc
+++ b/xmysqlnd/xmysqlnd_session.cc
@@ -3235,7 +3235,7 @@ PHP_MYSQL_XDEVAPI_API
 	 * For each address attempt to perform a connection
 	 * (The addresses are sorted by priority)
 	 */
-	const MYSQLND_ERROR_INFO* last_error_info{nullptr};
+	MYSQLND_ERROR_INFO last_error_info{0};
 	for( auto&& current_uri : uris ) {
 		DBG_INF_FMT("Attempting to connect with: %s\n",
 					current_uri.first.c_str());
@@ -3264,7 +3264,11 @@ PHP_MYSQL_XDEVAPI_API
 					ret = establish_connection(session,auth,
 											   url.first,url.second);
 					if (ret == FAIL) {
-						last_error_info = session->session->get_data()->get_error_info();
+						const MYSQLND_ERROR_INFO* session_error_info{
+							session->session->get_data()->get_error_info() };
+						if (session_error_info) {
+							last_error_info = *session_error_info;
+						}
 					}
 				}
 			} else {
@@ -3290,13 +3294,11 @@ PHP_MYSQL_XDEVAPI_API
 
 		if( uris.size() > 1) {
 			devapi::RAISE_EXCEPTION( err_msg_all_routers_failed );
-		} else if (last_error_info) {
+		} else if (last_error_info.error_no) {
 			throw util::xdevapi_exception(
-				last_error_info->error_no ? 
-					last_error_info->error_no : 
-					static_cast<unsigned int>(util::xdevapi_exception::Code::connection_failure), 
-				last_error_info->sqlstate, 
-				last_error_info->error);
+				last_error_info.error_no,
+				last_error_info.sqlstate,
+				last_error_info.error);
 		}
 	}
 	DBG_RETURN(ret);


--
PECL CVS Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic