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.