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/27 21:09:15 UTC

svn commit: r128420 - /httpd/apreq/branches/multi-env-unstable/STATUS

Author: joes
Date: Thu Jan 27 12:09:14 2005
New Revision: 128420

URL: http://svn.apache.org/viewcvs?view=rev&rev=128420
Log:

Add STATUS entry detailing my long-range goals for apreq_env_handle_t.

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=128420&p1=httpd/apreq/branches/multi-env-unstable/STATUS&r1=128419&p2=httpd/apreq/branches/multi-env-unstable/STATUS&r2=128420
==============================================================================
--- httpd/apreq/branches/multi-env-unstable/STATUS	(original)
+++ httpd/apreq/branches/multi-env-unstable/STATUS	Thu Jan 27 12:09:14 2005
@@ -17,6 +17,66 @@
        place.
 
 
+     -  joes: We should also remove apreq_jar_t and apreq_request_t.
+        I want apreq_env_handle_t to ultimately look something like this:
+
+        typedef struct apreq_env_module_t {
+            const char *name;
+            apr_uint32_t magic_number;
+            apr_pool_t *(*pool)(apreq_env_handle_t *);
+            apr_bucket_alloc_t *(*bucket_alloc)(apreq_env_handle_t *);
+
+            apr_status_t (*jar)(apreq_env_handle_t *, const apr_table_t **);
+            apr_status_t (*args)(apreq_env_handle_t *, const apr_table_t **);
+            apr_status_t (*body)(apreq_env_handle_t *, const apr_table_t **);
+
+            apreq_cookie_t *(*jar_get)(apreq_env_handle_t *, const char *);
+            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_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;
+
+
+        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);
+
+            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 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.
+
+
+       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 *);
+
+            const char *(*query_string)(apreq_env_handle_t *);
+            apr_status_t (*read)(apreq_env_handle_t *,apr_read_type_e,apr_off_t);
+
+
+
+
+
 RELEASE SHOWSTOPPERS:
 
      - The api docs and perl glue are currently broken.