maxim Thu Nov 14 16:26:57 2002 EDT Modified files: /php4/ext/oci8 oci8.c Log: Added function OCIPasswordChange() that allows renewal of an expired Oracle password. # Tested, but still considered experimental... Index: php4/ext/oci8/oci8.c diff -u php4/ext/oci8/oci8.c:1.183 php4/ext/oci8/oci8.c:1.184 --- php4/ext/oci8/oci8.c:1.183 Sun Nov 10 00:31:12 2002 +++ php4/ext/oci8/oci8.c Thu Nov 14 16:26:57 2002 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: oci8.c,v 1.183 2002/11/10 05:31:12 maxim Exp $ */ +/* $Id: oci8.c,v 1.184 2002/11/14 21:26:57 maxim Exp $ */ /* TODO list: * @@ -28,7 +28,6 @@ * especialliy important for things like oci_ping * - Change return-value for OCIFetch*() (1-row read, 0-Normal end, false-error) * - Error mode (print or shut up?) - * - OCIPasswordChange() * - binding of arrays * - Character sets for NCLOBS * - split the module into an upper (php-callable) and lower (c-callable) layer! @@ -245,6 +244,7 @@ PHP_FUNCTION(ocistatementtype); PHP_FUNCTION(ocirowcount); PHP_FUNCTION(ocisetprefetch); +PHP_FUNCTION(ocipasswordchange); #ifdef HAVE_OCI8_TEMP_LOB PHP_FUNCTION(ociwritetemporarylob); PHP_FUNCTION(ocicloselob); @@ -342,6 +342,7 @@ PHP_FE(ocirollback, NULL) PHP_FE(ocinewdescriptor, NULL) PHP_FE(ocisetprefetch, NULL) + PHP_FE(ocipasswordchange,NULL) #ifdef WITH_COLLECTIONS PHP_FE(ocifreecollection,NULL) PHP_FE(ocicollappend, NULL) @@ -627,7 +628,7 @@ php_info_print_table_start(); php_info_print_table_row(2, "OCI8 Support", "enabled"); - php_info_print_table_row(2, "Revision", "$Revision: 1.183 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.184 $"); #ifndef PHP_WIN32 php_info_print_table_row(2, "Oracle Version", PHP_OCI8_VERSION ); php_info_print_table_row(2, "Compile-time ORACLE_HOME", PHP_OCI8_DIR ); @@ -4391,6 +4392,52 @@ oci_setprefetch(statement,Z_LVAL_PP(size)); RETURN_TRUE; +} + +/* }}} */ + +/* {{{ proto bool ocipasswordchange(int conn, string user, string old_password, +string new_password) + changes the password of an account*/ + +PHP_FUNCTION(ocipasswordchange) +{ + zval **conn, **user_param, **pass_old_param, **pass_new_param; + text *user, *pass_old, *pass_new; + oci_connection *connection; + + if (zend_get_parameters_ex(4, &conn, &user_param, &pass_old_param, +&pass_new_param) == FAILURE) { + WRONG_PARAM_COUNT; + } + + user = Z_STRVAL_PP(user_param); + pass_old = Z_STRVAL_PP(pass_old_param); + pass_new = Z_STRVAL_PP(pass_new_param); + + OCI_GET_CONN(connection, conn); + + CALL_OCI_RETURN( + connection->error + ,OCIPasswordChange( + connection->pServiceContext + ,connection->pError + ,user + ,strlen(user)+1 + ,pass_old + ,strlen(pass_old)+1 + ,pass_new + ,strlen(pass_new)+1 + ,OCI_DEFAULT + ) + ); + + if (connection->error == OCI_SUCCESS) { + RETURN_TRUE; + } + else { + oci_error(connection->pError, "OCIPasswordChange", connection->error); + oci_handle_error(connection, connection->error); + RETURN_FALSE; + } } /* }}} */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php