diff options
author | Alexey Zakhlestin <indeyets@php.net> | 2008-06-28 09:52:03 +0000 |
---|---|---|
committer | Alexey Zakhlestin <indeyets@php.net> | 2008-06-28 09:52:03 +0000 |
commit | 0045cb305b58eca93a61c4f95e4ef2401eb292c7 (patch) | |
tree | 455f046aa95c857b2f9db50456aceb954f22ed63 /sapi/apache | |
parent | 4776dfb296704b666dd155de944356233c393d25 (diff) | |
download | php-git-0045cb305b58eca93a61c4f95e4ef2401eb292c7.tar.gz |
updated to the new parameter-parsing api
Diffstat (limited to 'sapi/apache')
-rw-r--r-- | sapi/apache/php_apache.c | 131 |
1 files changed, 69 insertions, 62 deletions
diff --git a/sapi/apache/php_apache.c b/sapi/apache/php_apache.c index 7466a0ca80..29d136ba70 100644 --- a/sapi/apache/php_apache.c +++ b/sapi/apache/php_apache.c @@ -141,28 +141,26 @@ PHP_FUNCTION(apache_child_terminate) Get and set Apache request notes */ PHP_FUNCTION(apache_note) { - zval **arg_name, **arg_val; - char *note_val; + char *note_name, *note_val; + long note_name_len, note_val_len; + char *old_val; int arg_count = ZEND_NUM_ARGS(); - if (arg_count<1 || arg_count>2 || - zend_get_parameters_ex(arg_count, &arg_name, &arg_val) ==FAILURE ) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(arg_count TSRMLS_CC, "s|s", ¬e_name, ¬e_name_len, ¬e_val, ¬e_val_len) == FAILURE) { + return; } - - convert_to_string_ex(arg_name); - note_val = (char *) table_get(((request_rec *)SG(server_context))->notes, (*arg_name)->value.str.val); - + + old_val = (char *) table_get(((request_rec *)SG(server_context))->notes, note_name); + if (arg_count == 2) { - convert_to_string_ex(arg_val); - table_set(((request_rec *)SG(server_context))->notes, (*arg_name)->value.str.val, (*arg_val)->value.str.val); + table_set(((request_rec *)SG(server_context))->notes, note_name, note_val); } - if (note_val) { - RETURN_STRING(note_val, 1); - } else { - RETURN_FALSE; + if (old_val) { + RETURN_STRING(old_val, 1); } + + RETURN_FALSE; } /* }}} */ @@ -310,23 +308,25 @@ PHP_MINFO_FUNCTION(apache) */ PHP_FUNCTION(virtual) { - zval **filename; + char *filename; + long filename_len; request_rec *rr = NULL; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &filename) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filename, &filename_len) == FAILURE) { + return; } - convert_to_string_ex(filename); - if (!(rr = sub_req_lookup_uri ((*filename)->value.str.val, ((request_rec *) SG(server_context))))) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to include '%s' - URI lookup failed", (*filename)->value.str.val); - if (rr) destroy_sub_req (rr); + if (!(rr = sub_req_lookup_uri (filename, ((request_rec *) SG(server_context))))) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to include '%s' - URI lookup failed", filename); + if (rr) + destroy_sub_req (rr); RETURN_FALSE; } if (rr->status != 200) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to include '%s' - error finding URI", (*filename)->value.str.val); - if (rr) destroy_sub_req (rr); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to include '%s' - error finding URI", filename); + if (rr) + destroy_sub_req (rr); RETURN_FALSE; } @@ -334,13 +334,16 @@ PHP_FUNCTION(virtual) php_header(TSRMLS_C); if (run_sub_req(rr)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to include '%s' - request execution failed", (*filename)->value.str.val); - if (rr) destroy_sub_req (rr); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to include '%s' - request execution failed", filename); + if (rr) + destroy_sub_req (rr); RETURN_FALSE; - } else { - if (rr) destroy_sub_req (rr); - RETURN_TRUE; } + + if (rr) + destroy_sub_req (rr); + + RETURN_TRUE; } /* }}} */ @@ -351,14 +354,14 @@ PHP_FUNCTION(virtual) Fetch all HTTP request headers */ PHP_FUNCTION(apache_request_headers) { - array_header *env_arr; - table_entry *tenv; - int i; - - array_init(return_value); - env_arr = table_elts(((request_rec *) SG(server_context))->headers_in); - tenv = (table_entry *)env_arr->elts; - for (i = 0; i < env_arr->nelts; ++i) { + array_header *env_arr; + table_entry *tenv; + int i; + + array_init(return_value); + env_arr = table_elts(((request_rec *) SG(server_context))->headers_in); + tenv = (table_entry *)env_arr->elts; + for (i = 0; i < env_arr->nelts; ++i) { if (!tenv[i].key || (PG(safe_mode) && !strncasecmp(tenv[i].key, "authorization", 13))) { @@ -375,14 +378,14 @@ PHP_FUNCTION(apache_request_headers) Fetch all HTTP response headers */ PHP_FUNCTION(apache_response_headers) { - array_header *env_arr; - table_entry *tenv; - int i; - - array_init(return_value); - env_arr = table_elts(((request_rec *) SG(server_context))->headers_out); - tenv = (table_entry *)env_arr->elts; - for (i = 0; i < env_arr->nelts; ++i) { + array_header *env_arr; + table_entry *tenv; + int i; + + array_init(return_value); + env_arr = table_elts(((request_rec *) SG(server_context))->headers_out); + tenv = (table_entry *)env_arr->elts; + for (i = 0; i < env_arr->nelts; ++i) { if (!tenv[i].key) continue; if (add_assoc_string(return_value, tenv[i].key, (tenv[i].val==NULL) ? "" : tenv[i].val, 1)==FAILURE) { RETURN_FALSE; @@ -395,13 +398,13 @@ PHP_FUNCTION(apache_response_headers) Set an Apache subprocess_env variable */ PHP_FUNCTION(apache_setenv) { - int var_len, val_len; + long var_len, val_len; zend_bool top=0; char *var = NULL, *val = NULL; request_rec *r = (request_rec *) SG(server_context); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|b", &var, &var_len, &val, &val_len, &top) == FAILURE) { - RETURN_FALSE; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|b", &var, &var_len, &val, &val_len, &top) == FAILURE) { + return; } while(top) { @@ -418,20 +421,22 @@ PHP_FUNCTION(apache_setenv) Perform a partial request of the given URI to obtain information about it */ PHP_FUNCTION(apache_lookup_uri) { - zval **filename; + char *filename; + long filename_len; request_rec *rr=NULL; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &filename) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filename, &filename_len) == FAILURE) { + return; } - convert_to_string_ex(filename); - if(!(rr = sub_req_lookup_uri((*filename)->value.str.val, ((request_rec *) SG(server_context))))) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "URI lookup failed '%s'", (*filename)->value.str.val); + if (!(rr = sub_req_lookup_uri(filename, ((request_rec *) SG(server_context))))) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "URI lookup failed '%s'", filename); RETURN_FALSE; } + object_init(return_value); add_property_long(return_value,"status", rr->status); + if (rr->the_request) { add_property_string(return_value,"the_request", rr->the_request, 1); } @@ -462,6 +467,7 @@ PHP_FUNCTION(apache_lookup_uri) if (rr->boundary) { add_property_string(return_value,"boundary", rr->boundary, 1); } + add_property_long(return_value,"no_cache", rr->no_cache); add_property_long(return_value,"no_local_copy", rr->no_local_copy); add_property_long(return_value,"allowed", rr->allowed); @@ -492,19 +498,20 @@ This function is most likely a bad idea. Just playing with it for now. PHP_FUNCTION(apache_exec_uri) { - zval **filename; + char *filename; + long filename_len; request_rec *rr=NULL; TSRMLS_FETCH(); - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &filename) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filename, &filename_len) == FAILURE) { + return; } - convert_to_string_ex(filename); - if(!(rr = ap_sub_req_lookup_uri((*filename)->value.str.val, ((request_rec *) SG(server_context))))) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "URI lookup failed", (*filename)->value.str.val); + if(!(rr = ap_sub_req_lookup_uri(filename, ((request_rec *) SG(server_context))))) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "URI lookup failed", filename); RETURN_FALSE; } + RETVAL_LONG(ap_run_sub_req(rr)); ap_destroy_sub_req(rr); } @@ -518,9 +525,9 @@ PHP_FUNCTION(apache_get_version) if (apv && *apv) { RETURN_STRING(apv, 1); - } else { - RETURN_FALSE; } + + RETURN_FALSE; } /* }}} */ |