cvs: php4 /sapi/apache2filter php_functions.c

From: Date: Mon, 06 Nov 2000 01:46:29 +0000
Subject: cvs: php4 /sapi/apache2filter php_functions.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-2495@lists.php.net to get a copy of this message
sas Sun Nov 5 17:46:29 2000 EDT Modified files: /php4/sapi/apache2filter php_functions.c Log: Add apache_sub_req() Index: php4/sapi/apache2filter/php_functions.c diff -u php4/sapi/apache2filter/php_functions.c:1.2 php4/sapi/apache2filter/php_functions.c:1.3 --- php4/sapi/apache2filter/php_functions.c:1.2 Sun Oct 29 09:43:23 2000 +++ php4/sapi/apache2filter/php_functions.c Sun Nov 5 17:46:28 2000 @@ -18,20 +18,30 @@ #include "php_apache.h" -PHP_FUNCTION(apache_sub_req) +static request_rec *php_lookup_uri(INTERNAL_FUNCTION_PARAMETERS) { zval **p1; - request_req *rr; php_struct *ctx; SLS_FETCH(); if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &p1) == FAILURE) - WRONG_NUM_ARGS; + return NULL; convert_to_string_ex(p1); ctx = SG(server_context); - rr = ap_sub_req_lookup_uri(Z_STRVAL_PP(p1), ctx->f->r); + return ap_sub_req_lookup_uri(Z_STRVAL_PP(p1), ctx->f->r); +} + +PHP_FUNCTION(apache_sub_req) +{ + request_rec *rr; + + rr = php_lookup_uri(INTERNAL_FUNCTION_PARAM_PASSTHRU); + + if (!rr) + WRONG_NUM_ARGS; + if (rr->status == HTTP_OK) { ap_run_sub_req(rr); RETURN_TRUE; @@ -39,3 +49,43 @@ RETURN_FALSE; } +#define ADD_LONG(name) \ + add_assoc_long(return_value, #name, rr->name) +#define ADD_STRING(name) \ + add_assoc_string(return_value, #name, rr->name, 1) + +PHP_FUNCTION(apache_lookup_uri) +{ + request_rec *rr; + + rr = php_apache_lookup_uri(INTERNAL_FUNCTION_PARAM_PASSTHRU); + if (!rr) + WRONG_NUM_ARGS; + + if (rr->status == HTTP_OK) { + array_init(return_value); + + ADD_LONG(status); + ADD_STRING(the_request); + ADD_STRING(status_line); + ADD_STRING(method); + ADD_LONG(mtime); + ADD_LONG(clength); + ADD_STRING(boundary); + ADD_STRING(range); + ADD_LONG(byterange); + ADD_LONG(chunked); + ADD_STRING(content_type); + ADD_STRING(handler); + ADD_LONG(no_cache); + ADD_LONG(no_local_copy); + ADD_STRING(unparsed_uri); + ADD_STRING(uri); + ADD_STRING(filename); + ADD_STRING(path_info); + ADD_STRING(args); + + return; + } + RETURN_FALSE; +}

« previous php.cvs (#2495) next »