svn: /php/php-src/ branches/PHP_5_3/ext/oci8/oci8.c branches/PHP_5_3/ext/oci8/package.xml branches/PHP_5_4/ext/oci8/oci8.c
branches/PHP_5_4/ext/oci8/package.xml trunk/ext/oci8/oci8.c trunk/ext/oci8/package.xml
| From: | Christopher Jones | Date: | Mon, 07 Nov 2011 20:10:41 +0000 |
| Subject: | svn: /php/php-src/ branches/PHP_5_3/ext/oci8/oci8.c branches/PHP_5_3/ext/oci8/package.xml branches/PHP_5_4/ext/oci8/oci8.c branches/PHP_5_4/ext/oci8/package.xml trunk/ext/oci8/oci8.c trunk/ext/oci8/package.xml |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-66903@lists.php.net to get a copy of this message | ||
sixd Mon, 07 Nov 2011 20:10:41 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=318888
Log:
Improve OCI8 NLS env creation error messages (#58925)
Bug: https://bugs.php.net/58925 (Assigned) No error
information available when php_oci_create_env fails
Changed paths:
U php/php-src/branches/PHP_5_3/ext/oci8/oci8.c
U php/php-src/branches/PHP_5_3/ext/oci8/package.xml
U php/php-src/branches/PHP_5_4/ext/oci8/oci8.c
U php/php-src/branches/PHP_5_4/ext/oci8/package.xml
U php/php-src/trunk/ext/oci8/oci8.c
U php/php-src/trunk/ext/oci8/package.xml
Modified: php/php-src/branches/PHP_5_3/ext/oci8/oci8.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/oci8/oci8.c 2011-11-07 19:23:17 UTC (rev 318887)
+++ php/php-src/branches/PHP_5_3/ext/oci8/oci8.c 2011-11-07 20:10:41 UTC (rev 318888)
@@ -2901,11 +2901,20 @@
PHP_OCI_CALL_RETURN(OCI_G(errcode), OCIEnvNlsCreate, (&retenv, OCI_G(events) ?
PHP_OCI_INIT_MODE | OCI_EVENTS : PHP_OCI_INIT_MODE, 0, NULL, NULL, NULL, 0, NULL, charsetid,
charsetid));
if (OCI_G(errcode) != OCI_SUCCESS) {
+ sb4 ora_error_code = 0;
+ text ora_msg_buf[OCI_ERROR_MAXMSG_SIZE]; /* Use traditional smaller size: non-PL/SQL errors
should fit and it keeps the stack smaller */
+
#ifdef HAVE_OCI_INSTANT_CLIENT
php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something
wrong with your system - please check that " PHP_OCI8_LIB_PATH_MSG " includes the
directory with Oracle Instant Client libraries");
#else
php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something
wrong with your system - please check that ORACLE_HOME and " PHP_OCI8_LIB_PATH_MSG " are
set and point to the right directories");
#endif
+ if (retenv
+ && OCIErrorGet(retenv, (ub4)1, NULL, &ora_error_code, ora_msg_buf,
(ub4)OCI_ERROR_MAXMSG_SIZE, (ub4)OCI_HTYPE_ENV) == OCI_SUCCESS
+ && *ora_msg_buf) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ora_msg_buf);
+ }
+
return NULL;
}
return retenv;
Modified: php/php-src/branches/PHP_5_3/ext/oci8/package.xml
===================================================================
--- php/php-src/branches/PHP_5_3/ext/oci8/package.xml 2011-11-07 19:23:17 UTC (rev 318887)
+++ php/php-src/branches/PHP_5_3/ext/oci8/package.xml 2011-11-07 20:10:41 UTC (rev 318888)
@@ -47,6 +47,7 @@
<license uri="http://www.php.net/license">PHP</license>
<notes>
Increased maximum possible Oracle DB error message length
+ Improve internal initalization failure error messages
</notes>
<contents>
<dir name="/">
Modified: php/php-src/branches/PHP_5_4/ext/oci8/oci8.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/oci8/oci8.c 2011-11-07 19:23:17 UTC (rev 318887)
+++ php/php-src/branches/PHP_5_4/ext/oci8/oci8.c 2011-11-07 20:10:41 UTC (rev 318888)
@@ -2901,11 +2901,20 @@
PHP_OCI_CALL_RETURN(OCI_G(errcode), OCIEnvNlsCreate, (&retenv, OCI_G(events) ?
PHP_OCI_INIT_MODE | OCI_EVENTS : PHP_OCI_INIT_MODE, 0, NULL, NULL, NULL, 0, NULL, charsetid,
charsetid));
if (OCI_G(errcode) != OCI_SUCCESS) {
+ sb4 ora_error_code = 0;
+ text ora_msg_buf[OCI_ERROR_MAXMSG_SIZE]; /* Use traditional smaller size: non-PL/SQL errors
should fit and it keeps the stack smaller */
+
#ifdef HAVE_OCI_INSTANT_CLIENT
php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something
wrong with your system - please check that " PHP_OCI8_LIB_PATH_MSG " includes the
directory with Oracle Instant Client libraries");
#else
php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something
wrong with your system - please check that ORACLE_HOME and " PHP_OCI8_LIB_PATH_MSG " are
set and point to the right directories");
#endif
+ if (retenv
+ && OCIErrorGet(retenv, (ub4)1, NULL, &ora_error_code, ora_msg_buf,
(ub4)OCI_ERROR_MAXMSG_SIZE, (ub4)OCI_HTYPE_ENV) == OCI_SUCCESS
+ && *ora_msg_buf) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ora_msg_buf);
+ }
+
return NULL;
}
return retenv;
Modified: php/php-src/branches/PHP_5_4/ext/oci8/package.xml
===================================================================
--- php/php-src/branches/PHP_5_4/ext/oci8/package.xml 2011-11-07 19:23:17 UTC (rev 318887)
+++ php/php-src/branches/PHP_5_4/ext/oci8/package.xml 2011-11-07 20:10:41 UTC (rev 318888)
@@ -47,6 +47,7 @@
<license uri="http://www.php.net/license">PHP</license>
<notes>
Increased maximum possible Oracle DB error message length
+ Improve internal initalization failure error messages
</notes>
<contents>
<dir name="/">
Modified: php/php-src/trunk/ext/oci8/oci8.c
===================================================================
--- php/php-src/trunk/ext/oci8/oci8.c 2011-11-07 19:23:17 UTC (rev 318887)
+++ php/php-src/trunk/ext/oci8/oci8.c 2011-11-07 20:10:41 UTC (rev 318888)
@@ -2901,11 +2901,20 @@
PHP_OCI_CALL_RETURN(OCI_G(errcode), OCIEnvNlsCreate, (&retenv, OCI_G(events) ?
PHP_OCI_INIT_MODE | OCI_EVENTS : PHP_OCI_INIT_MODE, 0, NULL, NULL, NULL, 0, NULL, charsetid,
charsetid));
if (OCI_G(errcode) != OCI_SUCCESS) {
+ sb4 ora_error_code = 0;
+ text ora_msg_buf[OCI_ERROR_MAXMSG_SIZE]; /* Use traditional smaller size: non-PL/SQL errors
should fit and it keeps the stack smaller */
+
#ifdef HAVE_OCI_INSTANT_CLIENT
php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something
wrong with your system - please check that " PHP_OCI8_LIB_PATH_MSG " includes the
directory with Oracle Instant Client libraries");
#else
php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something
wrong with your system - please check that ORACLE_HOME and " PHP_OCI8_LIB_PATH_MSG " are
set and point to the right directories");
#endif
+ if (retenv
+ && OCIErrorGet(retenv, (ub4)1, NULL, &ora_error_code, ora_msg_buf,
(ub4)OCI_ERROR_MAXMSG_SIZE, (ub4)OCI_HTYPE_ENV) == OCI_SUCCESS
+ && *ora_msg_buf) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ora_msg_buf);
+ }
+
return NULL;
}
return retenv;
Modified: php/php-src/trunk/ext/oci8/package.xml
===================================================================
--- php/php-src/trunk/ext/oci8/package.xml 2011-11-07 19:23:17 UTC (rev 318887)
+++ php/php-src/trunk/ext/oci8/package.xml 2011-11-07 20:10:41 UTC (rev 318888)
@@ -47,6 +47,7 @@
<license uri="http://www.php.net/license">PHP</license>
<notes>
Increased maximum possible Oracle DB error message length
+ Improve internal initalization failure error messages
</notes>
<contents>
<dir name="/">