cvs: php4 /sapi/apache2filter php_functions.c
| From: | Sascha Schumann | 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;
+}