You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apreq-cvs@httpd.apache.org by jo...@apache.org on 2005/01/28 06:49:05 UTC
svn commit: r148858 - /httpd/apreq/branches/multi-env-unstable/STATUS
Author: joes
Date: Thu Jan 27 21:49:04 2005
New Revision: 148858
URL: http://svn.apache.org/viewcvs?view=rev&rev=148858
Log:
Correct STATUS to reflect current thoughts
on apreq_env_handle_t. Also update todo
section to mark impact of these changes.
Modified:
httpd/apreq/branches/multi-env-unstable/STATUS
Modified: httpd/apreq/branches/multi-env-unstable/STATUS
Url: http://svn.apache.org/viewcvs/httpd/apreq/branches/multi-env-unstable/STATUS?view=diff&rev=148858&p1=httpd/apreq/branches/multi-env-unstable/STATUS&r1=148857&p2=httpd/apreq/branches/multi-env-unstable/STATUS&r2=148858
==============================================================================
--- httpd/apreq/branches/multi-env-unstable/STATUS (original)
+++ httpd/apreq/branches/multi-env-unstable/STATUS Thu Jan 27 21:49:04 2005
@@ -32,44 +32,26 @@
apreq_param_t *(*args_get)(apreq_env_handle_t *, const char *);
apreq_param_t *(*body_get)(apreq_env_handle_t *, const char *);
- apr_status_t (*parser_get)(apreq_env_handle_t *, apreq_parser_t **);
+ apr_status_t (*parser_get)(apreq_env_handle_t *, const apreq_parser_t **);
apr_status_t (*parser_set)(apreq_env_handle_t *, apreq_parser_t *);
apr_status_t (*hook_add)(apreq_env_handle_t *, apreq_hook_t *);
- const char *(*header_in)(apreq_env_handle_t *,const char *);
- apr_status_t (*header_out)(apreq_env_handle_t *, const char *,char *);
- } apreq_env_module_t;
+ apr_status_t (*heap_limit_set)(apreq_env_handle_t *, apr_size_t);
+ apr_status_t (*heap_limit_get)(apreq_env_handle_t *, apr_size_t *);
+ apr_status_t (*data_limit_set)(apreq_env_handle_t *, apr_off_t);
+ apr_status_t (*data_limit_get)(apreq_env_handle_t *, apr_off_t *);
- Fates to be determined (ie, things that might need to stay in there somehow):
-
- void (*log)(const char *,int,int,apr_status_t,apreq_env_handle_t *,
- const char *,va_list);
-
- apr_pool_t *(*pool)(apreq_env_handle_t *);
- apr_bucket_alloc_t *(*bucket_alloc)(apreq_env_handle_t *);
+ apr_status_t (*temp_dir_set)(apreq_env_handle_t *, const char *);
+ apr_status_t (*temp_dir_get)(apreq_env_handle_t *, const char **);
- const char *(*temp_dir)(apreq_env_handle_t *, const char *);
- apr_off_t (*max_body)(apreq_env_handle_t *,apr_off_t);
- apr_ssize_t (*max_brigade)(apreq_env_handle_t *, apr_ssize_t);
-
- If possible the log calls inside libapreq2 should be replaced by
- error codes that either libapreq2 apps or modules can log (or not).
- The pool and bucket_alloc functions should become simple pointers
- in apreq_parser_t; env() doesn't need to provide them.
-
- The rest are controls (temp_dir, max_body, max_brigade) that
- users will need to configure, and libapreq2 parsers will need
- to look at. However these APIs are missing status codes, for
- situations where a user tries to apply bogus settings
- (or which change a setting after the parser has done its work).
- I'm wondering if that these config shouldn't be moved into the
- apreq_parser_t struct, in which case the new "parser_set" slot
- will accomplish the same effect.
+ const char *(*header_in)(apreq_env_handle_t *,const char *);
+ apr_status_t (*header_out)(apreq_env_handle_t *, const char *,char *);
+ } apreq_env_module_t;
- Things to definitely remove (being either unneeded, boneheaded,
- or now obsolete):
+ Things to definitely remove (being either unneeded, boneheaded,
+ or now obsolete):
apreq_jar_t (*jar)(apreq_env_handle_t *, apreq_jar_t *);
apreq_request_t (*request)(apreq_env_handle_t *, apreq_request_t *);
@@ -77,7 +59,16 @@
const char *(*query_string)(apreq_env_handle_t *);
apr_status_t (*read)(apreq_env_handle_t *,apr_read_type_e,apr_off_t);
+ apr_pool_t *(*pool)(apreq_env_handle_t *);
+ apr_bucket_alloc_t *(*bucket_alloc)(apreq_env_handle_t *);
+
+ void (*log)(const char *,int,int,apr_status_t,apreq_env_handle_t *,
+ const char *,va_list);
+ Logs shouldn't be needed anymore. Folks can use (soon to be improved)
+ hooks for tracing parser activity. Better error status codes
+ should allow users to diagnose problems through the API itself,
+ not by reading the logfile.
@@ -104,13 +95,17 @@
TODO:
+ - Perl glue, doc sync.
+
+ - Hooks are called on each param now, not just on uploads.
+ This allows them to do more stuff (logging, diagnostics, taint checks).
+
+ - Better error handling.
+
- We need to add some basic charset support. Long discussion
starts here:
http://article.gmane.org/gmane.comp.apache.apreq/2371
- - There are too many calls to apreq_env_pool()- lots of these
- can be eliminated by caching the pool in the parser's context.
-
- in glue/perl/t/apreq/cgi.t on Win32, printing to the error log
hangs if the strings involved are about 10000 in size.
This doesn't occur in the env/cgi tests - why?
@@ -129,12 +124,6 @@
Also add a test to configure that prevents simultaneous use of
--with-apache2-src and --with-apache2-apxs.
- - Bring Perl documentation up to speed: Table.pod, and Error.pod.
- These docs either need to be written, or they require Test::Inline
- tests to verify their API.
-
- - Write parser/hook API documentation, and add perl glue for the API.
-
- symbol exports files:
-# aix needs .exp files
@@ -143,10 +132,6 @@
- Rework glue/perl build system to use apreq2-config instead of
relying on paths like "../../src".
-
- - Taint checks need to be extended to APR objects, like
- $upload->bb and $upload->info. We may need be able to
- do that with additional typemaps.
OPEN ISSUES: