diff options
author | Christopher Jones <sixd@php.net> | 2008-07-16 22:16:03 +0000 |
---|---|---|
committer | Christopher Jones <sixd@php.net> | 2008-07-16 22:16:03 +0000 |
commit | 1c1c98c6205808402aeae66ee58a4b63210a1201 (patch) | |
tree | f4dd4807e4f471ec5ed0a8b1765aade904c42231 /ext/oci8/php_oci8_int.h | |
parent | 47c918cd6f522ee10fbe7701d025a788e740a8a5 (diff) | |
download | php-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.h | 28 |
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 /* }}} */ |