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: