fmk Thu Feb 26 15:31:15 2004 EDT Modified files: /php-src/ext/fbsql php_fbsql.c php_fbsql.h Log: Adding function to change user passwords http://cvs.php.net/diff.php/php-src/ext/fbsql/php_fbsql.c?r1=1.103&r2=1.104&ty=u Index: php-src/ext/fbsql/php_fbsql.c diff -u php-src/ext/fbsql/php_fbsql.c:1.103 php-src/ext/fbsql/php_fbsql.c:1.104 --- php-src/ext/fbsql/php_fbsql.c:1.103 Mon Feb 9 12:58:04 2004 +++ php-src/ext/fbsql/php_fbsql.c Thu Feb 26 15:31:14 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_fbsql.c,v 1.103 2004/02/09 17:58:04 fmk Exp $ */ +/* $Id: php_fbsql.c,v 1.104 2004/02/26 20:31:14 fmk Exp $ */ /* TODO: * @@ -163,6 +163,21 @@ #define FBSQL_LOB_DIRECT 0 /* default */ #define FBSQL_LOB_HANDLE 1 /* default */ +int mdOk(PHPFBLink* link, FBCMetaData* md, char* sql); +char *DigestPassword(char *user, char *password) +{ + char *digest = NULL; + + if (user && strlen(user) && password && strlen(password)) { + char *user_upper = estrdup(user); + digest = emalloc(17); + digest[0] = '\0'; + (void)fbcDigestPassword(php_strtoupper(user_upper, strlen(user_upper)), password, digest); + efree(user_upper); + } + + return digest; +} /* {{{ fbsql_functions[] */ @@ -225,6 +240,7 @@ PHP_FE(fbsql_username, NULL) PHP_FE(fbsql_password, NULL) PHP_FE(fbsql_warnings, NULL) + PHP_FE(fbsql_set_password, NULL) PHP_FE(fbsql_get_autostart_info, NULL) /* PHP_FE(fbsql_set_autostart_info, NULL) */ @@ -1319,6 +1335,48 @@ } /* }}} */ +/* {{{ proto bool fbsql_set_password(resource link_identifier, string user, string password, string old_password) + Change the password for a given user */ +PHP_FUNCTION(fbsql_set_password) +{ + PHPFBLink* phpLink = NULL; + zval **fbsql_link_index = NULL, **user, **password, **old_password; + char *digest_password, *digest_old_password; + FBCMetaData *md; + + switch (ZEND_NUM_ARGS()) { + case 4: + if (zend_get_parameters_ex(4, &fbsql_link_index, &user, &password, &old_password)==FAILURE) { + RETURN_FALSE; + } + break; + default: + WRONG_PARAM_COUNT; + break; + } + ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, -1, "FrontBase-Link", le_link, le_plink); + + convert_to_string_ex(user); + convert_to_string_ex(password); + convert_to_string_ex(old_password); + + digest_password = DigestPassword(Z_STRVAL_PP(user), Z_STRVAL_PP(password)); + digest_old_password = DigestPassword(Z_STRVAL_PP(user), Z_STRVAL_PP(old_password)); + + md = fbcdcSetPasswordForUser(phpLink->connection, Z_STRVAL_PP(user), digest_password, digest_old_password); + if (mdOk(phpLink, md, "Change password")) { + ZVAL_BOOL(return_value, 1); + } + else { + ZVAL_BOOL(return_value, 0); + } + fbcmdRelease(md); + if (digest_old_password) efree(digest_old_password); + if (digest_password) efree(digest_password); +} +/* }}} */ + + /* {{{ proto bool fbsql_select_db([string database_name [, resource link_identifier]]) Select the database to open */ PHP_FUNCTION(fbsql_select_db) http://cvs.php.net/diff.php/php-src/ext/fbsql/php_fbsql.h?r1=1.27&r2=1.28&ty=u Index: php-src/ext/fbsql/php_fbsql.h diff -u php-src/ext/fbsql/php_fbsql.h:1.27 php-src/ext/fbsql/php_fbsql.h:1.28 --- php-src/ext/fbsql/php_fbsql.h:1.27 Thu Jan 8 12:32:05 2004 +++ php-src/ext/fbsql/php_fbsql.h Thu Feb 26 15:31:14 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_fbsql.h,v 1.27 2004/01/08 17:32:05 sniper Exp $ */ +/* $Id: php_fbsql.h,v 1.28 2004/02/26 20:31:14 fmk Exp $ */ #define HAVE_FBSQL 1 @@ -97,6 +97,7 @@ PHP_FUNCTION(fbsql_username); PHP_FUNCTION(fbsql_password); PHP_FUNCTION(fbsql_warnings); +PHP_FUNCTION(fbsql_set_password); PHP_FUNCTION(fbsql_get_autostart_info); /* PHP_FUNCTION(fbsql_set_autostart_info); */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php