summaryrefslogtreecommitdiff
path: root/ext/oci8/php_oci8_int.h
diff options
context:
space:
mode:
authorChristopher Jones <sixd@php.net>2008-07-16 22:16:03 +0000
committerChristopher Jones <sixd@php.net>2008-07-16 22:16:03 +0000
commit1c1c98c6205808402aeae66ee58a4b63210a1201 (patch)
treef4dd4807e4f471ec5ed0a8b1765aade904c42231 /ext/oci8/php_oci8_int.h
parent47c918cd6f522ee10fbe7701d025a788e740a8a5 (diff)
downloadphp-git-1c1c98c6205808402aeae66ee58a4b63210a1201.tar.gz
MFH
1. Merged ARG_INFO patch (Felipe) 2. Allow empty username & password so Oracle can do non-password based authentication, i.e. "External Authentication". http://news.php.net/php.internals/37545 [DOC] A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter to oci_connect(), oci_new_connect() and oci_pconnect(). $c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT); This tells Oracle to do external or OS authentication, if configured in the database. OCI_CRED_EXT can only be used with username of "/" and a empty password. Oci8.privileged_connection may be On or Off. OCI_CRED_EXT is not supported on Windows for security reasons. The new flag may be combined with the existing OCI_SYSOPER or OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for OCI_SYSDBA and OCI_SYSOPER), e.g.: $c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
Diffstat (limited to 'ext/oci8/php_oci8_int.h')
-rw-r--r--ext/oci8/php_oci8_int.h28
1 files changed, 19 insertions, 9 deletions
diff --git a/ext/oci8/php_oci8_int.h b/ext/oci8/php_oci8_int.h
index 0a1eab2843..1f5aca2905 100644
--- a/ext/oci8/php_oci8_int.h
+++ b/ext/oci8/php_oci8_int.h
@@ -73,23 +73,33 @@ extern zend_class_entry *oci_coll_class_entry_ptr;
#define PHP_OCI_MAX_NAME_LEN 64
#define PHP_OCI_MAX_DATA_SIZE INT_MAX
-#define PHP_OCI_PIECE_SIZE (64*1024)-1
+#define PHP_OCI_PIECE_SIZE ((64*1024)-1)
#define PHP_OCI_LOB_BUFFER_SIZE 1048576l /* 1Mb seems to be the most reasonable buffer size for LOB reading */
-#define PHP_OCI_ASSOC 1<<0
-#define PHP_OCI_NUM 1<<1
+#define PHP_OCI_ASSOC (1<<0)
+#define PHP_OCI_NUM (1<<1)
#define PHP_OCI_BOTH (PHP_OCI_ASSOC|PHP_OCI_NUM)
-#define PHP_OCI_RETURN_NULLS 1<<2
-#define PHP_OCI_RETURN_LOBS 1<<3
+#define PHP_OCI_RETURN_NULLS (1<<2)
+#define PHP_OCI_RETURN_LOBS (1<<3)
-#define PHP_OCI_FETCHSTATEMENT_BY_COLUMN 1<<4
-#define PHP_OCI_FETCHSTATEMENT_BY_ROW 1<<5
+#define PHP_OCI_FETCHSTATEMENT_BY_COLUMN (1<<4)
+#define PHP_OCI_FETCHSTATEMENT_BY_ROW (1<<5)
#define PHP_OCI_FETCHSTATEMENT_BY (PHP_OCI_FETCHSTATEMENT_BY_COLUMN | PHP_OCI_FETCHSTATEMENT_BY_ROW)
#define PHP_OCI_LOB_BUFFER_DISABLED 0
-#define PHP_OCI_LOB_BUFFER_ENABLED 1
-#define PHP_OCI_LOB_BUFFER_USED 2
+#define PHP_OCI_LOB_BUFFER_ENABLED 1
+#define PHP_OCI_LOB_BUFFER_USED 2
+
+/* The mode parameter for oci_connect() is overloaded and accepts both
+ * privilege and external authentication flags OR'd together.
+ * PHP_OCI_CRED_EXT must be distinct from the OCI_xxx privilege
+ * values.
+ */
+#define PHP_OCI_CRED_EXT (1<<31)
+#if ((PHP_OCI_CRED_EXT == OCI_DEFAULT) || (PHP_OCI_CRED_EXT & (OCI_SYSOPER | OCI_SYSDBA)))
+#error Invalid value for PHP_OCI_CRED_EXT
+#endif
/* }}} */