summaryrefslogtreecommitdiff
path: root/ext/sybase_ct
diff options
context:
space:
mode:
authorTimm Friebe <thekid@php.net>2008-06-22 10:11:14 +0000
committerTimm Friebe <thekid@php.net>2008-06-22 10:11:14 +0000
commit4920a2f980444278109ef886c079bc18b2e02444 (patch)
tree4455ccaa959665e6e4d1beb7e481b45cf8108ea8 /ext/sybase_ct
parent1a23fec1b09c4bd72da62956269882bbef18b410 (diff)
downloadphp-git-4920a2f980444278109ef886c079bc18b2e02444.tar.gz
- Changed zend_get_parameters_ex -> zend_parse_parameters
- Simplified source in php_sybase_do_connect() # Part 1, more to follow
Diffstat (limited to 'ext/sybase_ct')
-rw-r--r--ext/sybase_ct/php_sybase_ct.c103
1 files changed, 14 insertions, 89 deletions
diff --git a/ext/sybase_ct/php_sybase_ct.c b/ext/sybase_ct/php_sybase_ct.c
index a3bea6c517..1e38da1076 100644
--- a/ext/sybase_ct/php_sybase_ct.c
+++ b/ext/sybase_ct/php_sybase_ct.c
@@ -597,98 +597,23 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
char *user, *passwd, *host, *charset, *appname;
char *hashed_details;
int hashed_details_length;
+ int len;
sybase_link *sybase_ptr;
- switch(ZEND_NUM_ARGS()) {
- case 0: /* defaults */
- host=user=passwd=charset=appname=NULL;
- hashed_details_length=6+5;
- hashed_details = (char *) emalloc(hashed_details_length+1);
- strcpy(hashed_details, "sybase_____");
- break;
- case 1: {
- zval **yyhost;
-
- if (zend_get_parameters_ex(1, &yyhost) == FAILURE) {
- RETURN_FALSE;
- }
- convert_to_string_ex(yyhost);
- host = Z_STRVAL_PP(yyhost);
- user=passwd=charset=appname=NULL;
- hashed_details_length = spprintf(&hashed_details, 0, "sybase_%s____", Z_STRVAL_PP(yyhost));
- }
- break;
- case 2: {
- zval **yyhost, **yyuser;
-
- if (zend_get_parameters_ex(2, &yyhost, &yyuser) == FAILURE) {
- RETURN_FALSE;
- }
- convert_to_string_ex(yyhost);
- convert_to_string_ex(yyuser);
- host = Z_STRVAL_PP(yyhost);
- user = Z_STRVAL_PP(yyuser);
- passwd=charset=appname=NULL;
- hashed_details_length = spprintf(&hashed_details, 0, "sybase_%s_%s___", Z_STRVAL_PP(yyhost), Z_STRVAL_PP(yyuser));
- }
- break;
- case 3: {
- zval **yyhost, **yyuser, **yypasswd;
-
- if (zend_get_parameters_ex(3, &yyhost, &yyuser, &yypasswd) == FAILURE) {
- RETURN_FALSE;
- }
- convert_to_string_ex(yyhost);
- convert_to_string_ex(yyuser);
- convert_to_string_ex(yypasswd);
- host = Z_STRVAL_PP(yyhost);
- user = Z_STRVAL_PP(yyuser);
- passwd = Z_STRVAL_PP(yypasswd);
- charset=appname=NULL;
- hashed_details_length = spprintf(&hashed_details, 0, "sybase_%s_%s_%s__", Z_STRVAL_PP(yyhost), Z_STRVAL_PP(yyuser), Z_STRVAL_PP(yypasswd));
- }
- break;
- case 4: {
- zval **yyhost, **yyuser, **yypasswd, **yycharset;
-
- if (zend_get_parameters_ex(4, &yyhost, &yyuser, &yypasswd, &yycharset) == FAILURE) {
- RETURN_FALSE;
- }
- convert_to_string_ex(yyhost);
- convert_to_string_ex(yyuser);
- convert_to_string_ex(yypasswd);
- convert_to_string_ex(yycharset);
- host = Z_STRVAL_PP(yyhost);
- user = Z_STRVAL_PP(yyuser);
- passwd = Z_STRVAL_PP(yypasswd);
- charset = Z_STRVAL_PP(yycharset);
- appname=NULL;
- hashed_details_length = spprintf(&hashed_details, 0, "sybase_%s_%s_%s_%s_", Z_STRVAL_PP(yyhost), Z_STRVAL_PP(yyuser), Z_STRVAL_PP(yypasswd), Z_STRVAL_PP(yycharset));
- }
- break;
- case 5: {
- zval **yyhost, **yyuser, **yypasswd, **yycharset, **yyappname;
-
- if (zend_get_parameters_ex(5, &yyhost, &yyuser, &yypasswd, &yycharset, &yyappname) == FAILURE) {
- RETURN_FALSE;
- }
- convert_to_string_ex(yyhost);
- convert_to_string_ex(yyuser);
- convert_to_string_ex(yypasswd);
- convert_to_string_ex(yycharset);
- convert_to_string_ex(yyappname);
- host = Z_STRVAL_PP(yyhost);
- user = Z_STRVAL_PP(yyuser);
- passwd = Z_STRVAL_PP(yypasswd);
- charset = Z_STRVAL_PP(yycharset);
- appname = Z_STRVAL_PP(yyappname);
- hashed_details_length = spprintf(&hashed_details, 0, "sybase_%s_%s_%s_%s_%s", Z_STRVAL_PP(yyhost), Z_STRVAL_PP(yyuser), Z_STRVAL_PP(yypasswd), Z_STRVAL_PP(yycharset), Z_STRVAL_PP(yyappname));
- }
- break;
- default:
- WRONG_PARAM_COUNT;
- break;
+ host= user= passwd= charset= appname= NULL;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sssss", &host, &len, &user, &len, &passwd, &len, &charset, &len, &appname, &len) == FAILURE) {
+ return;
}
+ hashed_details_length = spprintf(
+ &hashed_details,
+ 0,
+ "sybase_%s_%s_%s_%s_%s",
+ host ? host : "",
+ user ? user : "",
+ passwd ? passwd : "",
+ charset ? charset : "",
+ appname ? appname : ""
+ );
if (!SybCtG(allow_persistent)) {
persistent=0;