From: Christopher Jones Date: Mon, 9 Mar 2009 18:04:26 +0000 (+0000) Subject: MFH: PECL Bug #15988 (sqlnet.ora isn't read with older Oracle libraries) X-Git-Tag: RELEASE_1_3_5~37 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8b8dd708d0b37398c12c7496de1a4fbedc7cdb97;p=php MFH: PECL Bug #15988 (sqlnet.ora isn't read with older Oracle libraries) --- diff --git a/ext/oci8/oci8.c b/ext/oci8/oci8.c index d1bd81a64c..bea6d7e153 100644 --- a/ext/oci8/oci8.c +++ b/ext/oci8/oci8.c @@ -983,6 +983,22 @@ static void php_oci_init_global_handles(TSRMLS_D) goto oci_error; } +#if !defined(OCI_MAJOR_VERSION) || (OCI_MAJOR_VERSION < 11) + /* This works around PECL bug #15988 (sqlnet.ora not being read). + * The root cause was fixed in Oracle 10.2.0.4 but there is no + * compile time method to check for that precise patch level, nor + * can it be guaranteed that runtime will use the same patch level + * the code was compiled with. So, we do this code for all non + * 11g versions. + */ + OCICPool *cpoolh; + ub4 cpoolmode = 0x80000000; /* Pass invalid mode to OCIConnectionPoolCreate */ + PHP_OCI_CALL(OCIHandleAlloc, (OCI_G(env), (dvoid **) &cpoolh, OCI_HTYPE_CPOOL, (size_t) 0, (dvoid **) 0)); + PHP_OCI_CALL(OCIConnectionPoolCreate, (OCI_G(env), OCI_G(err), cpoolh, NULL, 0, NULL, 0, 0, 0, 0, NULL, 0, NULL, 0, cpoolmode)); + PHP_OCI_CALL(OCIConnectionPoolDestroy, (cpoolh, OCI_G(err), OCI_DEFAULT)); + PHP_OCI_CALL(OCIHandleFree, (cpoolh, OCI_HTYPE_CPOOL)); +#endif + return; oci_error: